浏览 1960 次
锁定老帖子 主题:深入透彻又简单的理解==比较符
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-11-01
一句话理解
==比较先把两侧的值转化为基本数据类型 也就是Number/String/布尔
如果两个基本数据类型不同 然后将基本数据类型转化为数字进行比较 如果相同直接比较值
看比较
"abc" == "abc" 都是字符串,类型相同,直接比较值,所以为true
"1abc" == 1 不同类型 Number("1abc")为NaN NaN == 1为false
[] == [] 两个对象,类型相同,不会转化,但是是两个不同的实例对象,所以为false
[] == ![] 左侧为对象,右侧为布尔,所以进行转化 []转化为基本数据类型使用toString方法,值为"" ![]为false,可以通过Boolean(![])进行验证 false转化为数字Number(false)为0 ""转化为数字Number("")为0 所以相等
[] == true 不同类型 []最终转化为数字为0 true转化为数字为1 所以为false
[] == false 同上,所以为true
var b = function(){}; b == true b为对象,转化使用toString 字符串是"function(){}" 转化为Number,使用Number("function(){}")为NaN 所以为NaN == 1结果为false
同样 b == false也是 NaN == 0 结果还是false
差不多就这些吧,谁再看到一些有意思的可以一起研究下。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-03-29
最后修改:2012-03-29
|
|
返回顶楼 | |
发表时间:2012-03-30
|
|
返回顶楼 | |