javascript中的數字也是按照IEEE754的標準存儲的,按64位存儲,可是操做符不會直接去操做64位,會將64位數轉換成32位整數操做,完成運算後再轉換成64位,這個64位對用戶來講是透明的。
雖然常常寫js,可是仍是對一些按位運算比較迷茫。對於32位有符號整數,最高位爲符號,正數最高位0,負數最高位1,負數按二進制補碼存儲。NaN和Inifinity在位操做中都被當成0對待javascript
0000 0000 0000 0000 0000 0000 0000 1010 => 1111 1111 1111 1111 1111 1111 1111 0101 (負數) => -0000 0000 0000 0000 0000 0000 0000 1011
對x取反至關於<=>-x-1java
按照1&1爲1,其它都爲0正則表達式
按照0|0爲0,其它都爲1chrome
按照0^0爲1,1^1爲1,其它都爲0code
右邊的空位用0補齊ip
左邊的空位正數用0補齊,負數用1補齊it
左邊的空位用0補齊io
typeof用來判斷一個變量的類型。console
typeof null => 'object' typeof number => 'number' typeof object => 'object' typeof function => 'function' typeof array => 'object' typeof 正則表達式 => 老版本safari和chrome返回'function',其它狀況返回'object'
注意:safari
console.log(a) // a未定義會報錯 typeof a // a未定義,返回undefined