莫要用双等号比较数组

长得一样,但不同

1 alert( [] == [] ); // false
2 alert( [0] == [0] ); // false

当数组变量指向的是同一个数组对象,即使是长得不一样,那也相等。

1 let arr=["apple","orange"];
2 let arr1=arr;
3 console.log(arr1==arr);

数组和0比较

1 alert( 0 == [] ); // true
2 
3 alert('0' == [] ); // false
4 // 在 [] 被转换为 '' 后
5 alert( 0 == '' ); // true,因为 '' 被转换成了数字 0
6 
7 alert('0' == '' ); // false,没有进一步的类型转换,是不同的字符串

 

posted @ 2020-12-12 21:10  呈心者  阅读(136)  评论(0编辑  收藏  举报