js中数据类型分基本数据类型和引用数据类型,然后它们又再细分,那么它们之间的比较又是怎么进行的呢?刚接触这个,真的是把我弄得特别懵,不过总结完以后,做了些练习好了很多,下面我来捋一捋。
==
console.log(1 == 1);// true console.log(1 == "1");// true console.log(1 == "1px");//false console.log(1 == true);//true console.log([]==false)// true console.log([]==0)// true console.log(100 == false);// false console.log(188 == "188");// true console.log(false == " ");// true
console.log({}==[])// false console.log({}=={})// false console.log([]=="")// true console.log([]==0)// true
既然有这么多数据类型,那么它们的比较肯定不是毫无章法的!
字符串==数字: 字符串转数字
{ } 对象toString 转换成字符串结果是"[object Object]"
!(取反) : 会先把后面的值进行去布尔,然后再取反,最后比较
0 " " NaN null undefined只有这五个值转布尔是false;
console.log(![] == [])// true console.log([]==[])// false console.log(![]==false);//true console.log({a:1}=="[object Object]")// true console.log("12px" == 12);
===
绝对比较; 只要数据类型不一样,那么返回false;
console.log(1 === 1);// true
console.log(1 === true);// false
console.log(1 === "1");// false