== 不会比较类型 只会比较值(把值都转成相同的类型,再比较)
console.log('11' == 11);
console.log('11'=== 11)
打印结果如下:
注意:
- NaN 不等于任何值 包括NaN
2. null 只会等于null 和 undefined
3. undefined只会等于 null 和undefined
4. 如果两边有数字或者布尔类型 都转成数字比较 true 1 , false 0, ‘’ 0, [] 0 , {} NaN
5. 如果是一个字符串 另一个是复杂类型, 复杂类型转成字符串比较
6. 都是复杂类型, 直接比地址== 不会比较类型 只会比较值(把值都转成相同的类型,再比较)
console.log([] == false); //true
console.log(2 == true);
console.log({} == true);
console.log('11' == 11);
console.log('aa' == 'bb')
console.log('' == []); //[] ''
console.log({} == '[object Object]');
console.log(NaN == NaN);
console.log(null == undefined);
console.log(null === undefined);
console.log(1 == true); // true
console.log(3 == true); // true
console.log(0 == false);
console.log(null == false);
console.log('' == false);
console.log([] == false);
console.log({} == false);
console.log([] == true);
console.log({} == true);
var arr = []
var arr2 = arr;
console.log([] == [])
console.log({} == {})
console.log({} == [])
console.log(arr == arr2)
console.log(true == ''); // 1 0
打印结果如下: