首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

深入透辟又简单的理解==比较符

2012-08-25 
深入透彻又简单的理解比较符一句话理解?比较先把两侧的值转化为基本数据类型也就是Number/String/布尔

深入透彻又简单的理解==比较符

一句话理解

?

==比较先把两侧的值转化为基本数据类型

也就是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

?

差不多就这些吧,谁再看到一些有意思的可以一起研究下。

热点排行