加法 +
1、算術(shù)加法
2、字符串連接

a + b.png
減乘除 - * /
都是數(shù)值運算,所有運算子都轉(zhuǎn)為數(shù)值,轉(zhuǎn)不成結(jié)果就是NaN。
比較 > >= < <=
原始值,對象都是比較值

a b.png
相等 == !=
原始值比較值,對象之間比較地址

a == b.png
嚴(yán)格相等 === !==

a === b.png
與 &&
a && b
如果a為true,返回b的值,而不是布爾值
如果a為false,直接返回a的值
var x = 1;
(x -= 1) && (x += 2) // 0
x // 0
x = 1
(x += 1) && (x -= 2) // 0
x // 0
或 ||
a || b
如果a判定為true,則直接返回a的值
如果a判定為false,則返回b的值
位運算 & | ~ ^ << >> >>>
只對整數(shù)起作用。
不是整數(shù)則自動轉(zhuǎn)為32位整數(shù)。
自動規(guī)則:
number, string, boolean -> number or NaN
object - valueOf - toString - number
NaN進(jìn)行位運算的結(jié)果:
NaN | a // a
NaN & a // 0
NaN ^ a // a
~NaN // -1
~~NaN // 0
NaN << a // 0
NaN >> a // 0
NaN >>> a // 0
表達(dá)式:
i = i | 0
功能:將任意的數(shù)據(jù)轉(zhuǎn)換成32位的整數(shù)。
否運算:
~ 3 // -4
~ -3 // 2
~a = b, 且 [a]取整 + b = -1
表達(dá)式:
~~a
功能:將任意的數(shù)據(jù)轉(zhuǎn)換成32位的整數(shù)。最快。
表達(dá)式:
10..toString(2) // "1010"
(-10).toString(2) // "-1010"
(-10>>>0).toString(2) // "11111111111111111111111111110110"
功能:查看負(fù)數(shù)數(shù)值二進(jìn)制表示