如何解释下面的现象?var a1 = 'a';var a2 = new String('a');var a3 = new String('a');a1 == a2; // truea1 == a3; // truea2 == a3; // falsea1 === a2; // falsea1 === a3; // falsea2 === a3; // false[]==[] // false[]===[] // false
1 回答

元芳怎么了
TA贡献1798条经验 获得超7个赞
var a1 = 'a';
var a2 = new String('a');//对象
var a3 = new String('a');//对象
a1 == a2; // true a2转为字符串 也可以理解为 == 是判断等号两边的值是否相等
a1 == a3; // true a3转为字符串
a2 == a3; // false 两个对象判断是否相等 new 了两次, 内存地址不同的两个对象
a1 === a2; // false === 严格等于 同时判断等号两边的值 包括类型
a1 === a3; // false 同上
a2 === a3; // false a2 == a3 返回值为false 则=== 也不可能为true
[]==[] // false 同a2 == a3
[]===[] // false 同a2 === a3
添加回答
举报
0/150
提交
取消