3 回答
Smart猫小萌
TA贡献1911条经验 获得超7个赞
简单解释就是 ===
先比较类型,再比较值。
因为 js 中没有整数和浮点数,只有 number
类型。
typeof 1.0; // "number" typeof 1; // "number"
因此 1.0
和 1
的类型是相同的。
然后比较值,很显然两者也是相同的。
复杂的解释就是看规范:
如果
Type(x)
与Type(y)
的结果不一致,返回false
,否则如果
Type(x)
结果为Undefined
,返回true
如果
Type(x)
结果为Null
,返回true
如果
Type(x)
结果为Number
,则如果
x
为NaN
,返回false
如果
y
为NaN
,返回false
如果
x
与y
为同一个数字,返回true
如果
x
为+0
,y
为-0
,返回true
如果
x
为-0
,y
为+0
,返回true
返回
false
如果
Type(x)
结果为String
,如果x
与y
为完全相同的字符序列(相同的长度和相同的字符对应相同的位置),返回true
,否则,返回false
如果
Type(x)
结果为Boolean
,如果x
与y
都为true
或false
,则返回true
,否则,返回false
如果
x
和y
引用到同一个Object
对象,返回true
,否则,返回false
重要段落我加粗了。
添加回答
举报
0/150
提交
取消