JavaScript 中可以直接使用比较运算符 "==" 比较两个数字是否相等. 在数字与数字相比中, 前边是不能随便带 0 的, 因为 0 在程序代表的是八进制的数字.
1,JavaScript 判断数字是否相等.
- console.log(012==12); //false
- console.log(012==10); // true
- console.log(099==99); //true 这种情况是因为八进制中不可能出现 9, 所以看成一个十进制
- console.log(09==9); //true 同上
示例:
- <!DOCTYPE html>
- <HTML>
- <body>
- <h1>
- JavaScript 比较
- </h1>
- <p>
- 把 5 赋值给 x, 然后显示比较 (x == 8) 的值:
- </p>
- <p id="demo">
- </p>
- <script>
- var x = 5;
- document.getElementById("demo").innerHTML = (x == 8);
- </script>
- </body>
- </HTML>
运行结果:
JavaScript 比较两个值是否相等:
2, 一般情况下, 将两边尽可能都转为 number 类型数据, 再进行比较, 而不是转为 Boolean 型
console.log(true==2); // false
如果两边都转为 Boolean 型再比较, 那么就是 true==true, 就不会返回 false, 所以证明不是两边转为 Boolean 型, 再比较!! 应该是两边都转为 number 类型, 1==2, 返回 false
console.log(true==1); // true
3,underfined,null,0,NaN,""这五个在转为布尔值时都会变为 false, 那么在"==" 中的表现如何呢
1underfined 和 null
undefined 和 null 与任何有意义的值比较返回的都是 false,null 与 undefined 在与其他数相等运算时不进行类型转换, 但是 null==undefined
- console.log(null==undefined); //true
- console.log(null===undefined); //false ===: 全等: 不仅比较值是否相等, 数据类型要相同
- console.log(null==0); // false
- console.log(undefined==1); //false
- console.log(null==false); // false
- console.log(undefined==""); // false
来源: http://www.css88.com/qa/javascript/11879.html