JS中双等号“==”和三等号“===”的区别
时间:2015-06-25 阅读:次 QQ群:182913345
我们会在一些代码中看到遇到“===”和“==”的写法,三等号与双等号有什么不同吗?在JavaScript中,===表示“恒等于”,==表示“等于”。=表示“赋值”。
?=:赋值,在逻辑运算时也有效;
?=:赋值,在逻辑运算时也有效;
?==:等于运算,但是不比较值的类型;
?===:完全等于运算,不仅比较值,而且还比较值的类型,只有两者一致才为真。
运行体会一下以下的代码就会清楚了:
alert(0 == ""); // true alert(0 == false); // true alert("" == false); // true alert(0 === ""); // false alert(0 === false); // false alert("" === false); // false |
JavaScript 是弱类型语言,这就意味着,等于操作符会为了比较两个值而进行强制类型转换。注意0的相等运算,例如:
"" == "0" // false 0 == "" // true 0 == "0" // true false == "false" // false false == "0" // true false == undefined // false false == null // false null == undefined // true " \t " == 0 // true |
而恒等于不像普通的等于操作符,不会进行强制类型转换。这样的话上述的结果就不太相同了:
"" === "0" // false 0 === "" // false 0 === "0" // false false === "false" // false false === "0" // false false === undefined // false false === null // false null === undefined // false " \t " === 0 // false |