您的位置:首页 > Web前端 > JavaScript

总结:JavaScript中两个值进行比较需要遵循的原则

2016-12-21 20:03 211 查看

总结:JavaScript中两个值进行比较需要遵循的原则

一个值判断真假 Boolean(),遵循 0,"",NAN,null,undefined为假(false),其余都为真(true)。

两个值进行比较的时候(指的是两个等号"==",例如:val1==val2),等号两边都是不同的数据类型的时候才需要转化。


对象 == 对象 ,永远不相等;

对象 == 布尔, 先将对象转化为字符串(调用[].toString()方法),再将字符串 转化为数字(调用Number()方法),将布尔也转化为数字 (调用Number()方法),最后数字和数字之间进行比较;

对象 == 字符串,先将对象转化为字符串(调用[].toString()方法),然后字符串和字符串之间进行比较;

对象 == 数字,先将对象转化为字符串(调用[].toString()方法),再将字符串 转化为数字(调用Number()方法),然后,数字和数字之间进行比较;

布尔 == 字符串,布尔和字符串分别转化为数字,再进行比较;

布尔 == 数字,布尔转化为数字,然后进行比较;

字符串 == 数字,字符串转化为数字,再进行比较;

null == undefined;—>true

null或者undefined,和其他数据类型相比较的时候,永远不相等。

eg:
注意:true转化为数字是1,false转化为数字是0
[].toString();  --->""
[]==[];  --->false
{}=={};  --->false
(function(){}==function(){});  --->false
解析:对象和对象相比永远不相等
[]==false;  --->true
解析:[]--toString()-->""--Boolean()-->false==false-->true
![]==false;  --->true
解析:![]--Boolean()-->true--取反-->false==false-->true
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript