比較

Bitwise operators
位元範圍的邏輯運算,用來在2進位 32-bit 的整數中運算。大部分程式語言都有這種設計。
- AND (
&) - OR (
|) - XOR (
^) - NOT (
~) - LEFT SHIFT (
<<) - RIGHT SHIFT (
>>) - ZERO-FILL RIGHT SHIFT (
>>>)
這些運算元不常見。
特殊字元的==比較
和特殊值如 null 或 undefined 的比較:
=== 包括比對兩個不是一樣的type
console.log( null === undefined ) // false
而 == (a non-strict check)
這裡有特殊規則,比較元==之下,下面的比較為真:
console.log( null == undefined ) // true
💡在比較元 < > <= >= 的相關運算中, null/undefined 會被轉換:
null變成0,undefined變成NaN.
null
比較 null 和 0:
console.log(null > 0) // (1) false
console.log(null == 0) // (2) false
console.log(null >= 0) // (3) true
上面看起來好像有矛盾。
原因是== 和其他的 比較元 >= <= 的解譯方式不一樣. 前者將null` 轉成0。
undefined
這個值再怎樣比較都是 false
console.log( undefined > 0 ) // false (1)
console.log( undefined < 0 ) // false (2)
console.log( undefined == 0 ) // false (3)
為甚麼?因為在比較的時候, undefined 被轉成NaN. 在程式設計觀念中,和 NaN 都是false.