js中的"=="与"==="的区别
"==":
1,如果两表达式的类型不同,则试图将它们转换为字符串、数字或 Boolean 量。 2,NaN 与包括其本身在内的任何值都不相等。 3,负零等于正零。 4,null 与 null 和 undefined 相等。 5,相同的字符串、数值上相等的数字、相同的对象、相同的 Boolean 值或者(当类型不同时)能被强制转化为上述情况之一,均被认为是相等的。 6,其他比较均被认为是不相等的。
<html> <body> <script> //1,5 var a = 1; var b = '1'; alert(a==b);//true b = false; alert(a==b);//false,false转为0,true转为1 //2 a = NaN; b = NaN; alert(a==b);//false //3 a = 0; b = -0; alert(a==b);//true //4 a = null; b = null; alert(a==b);//true b = undefined; alert(a==b);//true </script> </body> </html>
"===":
除了不进行类型转换,并且类型必须相同以外,这些运算符与相等运算符的作用是一样的。
<html> <body> <script> //1,5 var a = 1; var b = '1'; alert(a===b);//false b = false; alert(a===b);//false //2 a = NaN; b = NaN; alert(a===b);//false //3 a = 0; b = -0; alert(a===b);//true //4 a = null; b = null; alert(a===b);//true b = undefined; alert(a===b);//false </script> </body> </html>