Javascript必知必会(四)js类型转换


Posted in Javascript onJune 08, 2016

string和number boolean

javascript 类型会根据赋值的进行转成相应的类型。

var str = "";
alert(typeof (str));//string
str = ;
alert(typeof (str));//number
var sum = str + ; //+编程两个数字相加
alert(sum);//

这一种比较明显,一眼就可以计算出其值。但是请看下面这种转换

var sum = "" + "";
alert(typeof (sum)); //string
alert(sum);// 
var sum = "" + ;
alert(typeof (sum)); //string
alert(sum);//

 


 var sum = + "";


 alert(typeof (sum));//string


 alert(sum);
var area = "" * "";
alert(typeof (area)); //number
alert(area);//
var sub = "" - "";
alert(typeof (sub)); //number
alert(sub);//
var div = "" / "";
alert(typeof (div));//number
alert(div);//.

number 类型如果和string 类型"+", 将会直接number转成string

上述中“+” 比较特殊,如果是- 、* 、/ 呢;那么最终会转成什么类型呢。

var area = "" * "a";
alert(typeof (area));//number
alert(area);//NaN
var sub = "a" - "";
alert(typeof (sub));//number
alert(sub);//NaN
sub = "a" - ;
alert(typeof (sub));//number
alert(sub);//NaN
var div = "" / "a";
alert(typeof (div));//number
alert(div);//NaN
div = "a" / ;
alert(typeof (div));//number
alert(div);//NaN

如上 - 、*、/ 是number 中算术具有的。string和number是不能进行运算的,所以其值都是NaN。类型number。

var a = true;
alert(typeof(a));//boolean
var b = "true";
var ab = a + b;
alert(typeof (ab));//string
alert(ab); //truetrue
alert(a == b);//false

boolean 和 string ,boolean类型自动转成了字符串“true”,但是为什么a不等于b呢

大家看下这个例子:

var c = "";
alert(typeof(c));//string
var d = ;
alert(typeof (d));//number
alert(c == d);//true

  这里给出了转换的原则:(供参考)

1. 如果有一个操作数是布尔值,则在比较相等之前将其转换为数值————false转换为0,true转换为1;
2. 如果一个操作数是字符串,另一个操作符是数值,则在比较相等之前先讲字符串转换为数值;
3. 如果一个操作数是对象,另一个操作数不是,则调用对象的valueOf()方法,用得到的基本类型值按照前面的规则进行比较。

那么在比较字符串和布尔类型是就会:

发生这样的转换: Boolean true先转成number 1,在转成字符串“1” ,在进行比较。结果肯定是 false 了。

null 和string number Boolean undefined

var a = null;
alert(typeof (a));//object
var b = "hello";
var ab = a + b;
alert(typeof (ab));//string
alert(ab); //nullhello
var c = ;
var ac = a * c;
alert(typeof (ac)); //number
alert(ac);//
if (a ) //false
{
} else
{
alert("false");
}
var u;
alert(a == u); //true

从给出的例子可以看出:

null 在 string中 自动转成字符串"null" , 在number中表示数字 0,在逻辑判断中相当于false,在值表示时 和undefined 一样。注意是== 而不是===。

虽然javascript 在进行比较时,== 转换了其比较类型,但是其变量类型并没有因为== 而发生改变。

Javascript 相关文章推荐
一个高效的JavaScript压缩工具下载集合
Mar 06 Javascript
获取URL地址中的文件名和参数的javascript代码
Sep 02 Javascript
JavaScript 盒模型 尺寸深入理解
Dec 31 Javascript
使用JSLint提高JS代码质量方法分享
Dec 16 Javascript
jquery将一个表单序列化为一个对象的方法
Jan 03 Javascript
jquery向上向下取整适合分页查询
Sep 06 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
Jul 17 Javascript
利用jQuery实现漂亮的圆形进度条倒计时插件
Sep 30 Javascript
JS实现把鼠标放到链接上出现滚动文字的方法
Apr 06 Javascript
基于input动态模糊查询的实现方法
Dec 12 Javascript
vue中使用better-scroll实现滑动效果及注意事项
Nov 15 Javascript
jenkins自动构建发布vue项目的方法步骤
Jan 04 Vue.js
JavaScript必知必会(三) String .的方法来自何方
Jun 08 #Javascript
JavaScript必知必会(二) null 和undefined
Jun 08 #Javascript
JavaScript必知必会(九)function 说起 闭包问题
Jun 08 #Javascript
jQuery+ajax+asp.net获取Json值的方法
Jun 08 #Javascript
jQuery焦点图轮播插件KinSlideshow用法分析
Jun 08 #Javascript
JavaScript必知必会(十) call apply bind的用法说明
Jun 08 #Javascript
AngularJs学习第八篇 过滤器filter创建
Jun 08 #Javascript
You might like
PHP5中Cookie与 Session使用详解
2013/04/30 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
2013/06/20 PHP
php中stream(流)的用法
2014/03/25 PHP
PHPStrom 新建FTP项目以及在线操作教程
2016/10/16 PHP
PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能
2019/09/23 PHP
PHP超全局变量实现原理及代码解析
2020/09/01 PHP
javascript 进阶篇2 CSS XML学习
2012/03/14 Javascript
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
2013/12/14 Javascript
jquery实现的下拉和收缩效果示例
2014/08/21 Javascript
提升jQuery的性能需要做好七件事
2016/01/11 Javascript
underscore之function_动力节点Java学院整理
2017/07/11 Javascript
ReactNative Image组件使用详解
2017/08/07 Javascript
vue中实现图片和文件上传的示例代码
2018/03/16 Javascript
vue使用中的内存泄漏【推荐】
2018/07/10 Javascript
vue模仿网易云音乐的单页面应用
2019/04/24 Javascript
Layui点击图片弹框预览的实现方法
2019/09/16 Javascript
vue实现倒计时获取验证码效果
2020/04/17 Javascript
微信小程序实现多行文字超出部分省略号显示功能
2019/10/23 Javascript
vue使用map代替Aarry数组循环遍历的方法
2020/04/30 Javascript
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
2020/12/04 Vue.js
[05:20]2018DOTA2亚洲邀请赛主赛事第三日战况回顾 LGD率先挺进胜者组决赛
2018/04/06 DOTA
Django中URL视图函数的一些高级概念介绍
2015/07/20 Python
pytorch 把MNIST数据集转换成图片和txt的方法
2018/05/20 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
基于keras 模型、结构、权重保存的实现
2020/01/24 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
2021/01/08 Python
意大利咖啡、浓缩咖啡和浓缩咖啡机:illy caffe
2019/03/20 全球购物
递归计算如下递归函数的值(斐波拉契)
2012/02/04 面试题
DBA的职责都有哪些
2012/05/16 面试题
个人自我鉴定
2013/11/07 职场文书
广场舞大赛策划方案
2014/05/31 职场文书
四风问题自查自纠工作情况报告
2014/10/28 职场文书
研究生导师推荐信
2015/03/25 职场文书
2019年房屋委托租赁合同范本(通用版)!
2019/07/17 职场文书
《敬重卑微》读后感3篇
2019/11/26 职场文书
BCL经典机 SONY ICF-5900W电路分析
2022/04/24 无线电