js中的按位運算

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

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
相關文章
相關標籤/搜索