加法 +
1馋辈、算術(shù)加法
2、字符串連接
減乘除 - * /
都是數(shù)值運(yùn)算马澈,所有運(yùn)算子都轉(zhuǎn)為數(shù)值,轉(zhuǎn)不成結(jié)果就是NaN弄息。
比較 > >= < <=
原始值箭券,對(duì)象都是比較值
相等 == !=
原始值比較值,對(duì)象之間比較地址
嚴(yán)格相等 === !==
與 &&
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的值
位運(yùn)算 & | ~ ^ << >> >>>
只對(duì)整數(shù)起作用。
不是整數(shù)則自動(dòng)轉(zhuǎn)為32位整數(shù)具钥。
自動(dòng)規(guī)則:
number, string, boolean -> number or NaN
object - valueOf - toString - number
NaN進(jìn)行位運(yù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ù)豆村。
否運(yùn)算:
~ 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)制表示