在JS中,比较相等性有两种:严格相等和非严格相等,比较结果将返回true或false。主要区别是:
1、严格相等需要比较左右操作数的类型和值是否都相等,而非严格相等只需判断左右操作数的值是否相等;
2、在比较过程中,严格相等不会对左右操作数进行类型转换,而非严格相等会先将左右操作数的类型转换为同一类型。
两者的运算规则如下:
一、严格相等:x === y
- 对于不同类型的值,直接返回false。
console.log(true==="true");//false console.log(false==="false");//false console.log(undefined===null);//false
-
操作数中,只要含有NaN,返回false包括它自身。
console.log(NaN===NaN);//false
-
两操作数同时undefined或null时,返回true。若分别为null与undefined,则返回false。
console.log(undefined===undefined);//true cons