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
提交
取消
