取反運(yùn)算符(!)
如果對(duì)一個(gè)值連續(xù)做兩次取反運(yùn)算,等于將其轉(zhuǎn)為對(duì)應(yīng)的布爾值,與Boolean函數(shù)的作用相同。這是一種常用的類型轉(zhuǎn)換的寫法。
!!x 等同于 Boolean(x)
且運(yùn)算符(&&)
且運(yùn)算符(&&)往往用于多個(gè)表達(dá)式的求值。
它的運(yùn)算規(guī)則是:如果第一個(gè)運(yùn)算子的布爾值為true,則返回第二個(gè)運(yùn)算子的值(注意是值,不是布爾值);如果第一個(gè)運(yùn)算子的布爾值為false,則直接返回第一個(gè)運(yùn)算子的值,且不再對(duì)第二個(gè)運(yùn)算子求值。

上面代碼的最后一個(gè)例子,由于且運(yùn)算符的第一個(gè)運(yùn)算子的布爾值為false,則直接返回它的值0,而不再對(duì)第二個(gè)運(yùn)算子求值,所以變量x的值沒變。
運(yùn)算符可以多個(gè)連用,這時(shí)返回第一個(gè)布爾值為false的表達(dá)式的值。

上面代碼中,第一個(gè)布爾值為false的表達(dá)式為第三個(gè)表達(dá)式,所以得到一個(gè)空字符串。
或運(yùn)算符(||)
或運(yùn)算符(||)也用于多個(gè)表達(dá)式的求值。它的運(yùn)算規(guī)則是:如果第一個(gè)運(yùn)算子的布爾值為true,則返回第一個(gè)運(yùn)算子的值,且不再對(duì)第二個(gè)運(yùn)算子求值;如果第一個(gè)運(yùn)算子的布爾值為false,則返回第二個(gè)運(yùn)算子的值。

上面代碼中,且運(yùn)算符的第一個(gè)運(yùn)算子為true,所以直接返回true,不再運(yùn)行第二個(gè)運(yùn)算子。所以,x的值沒有改變。
或運(yùn)算符可以多個(gè)連用,這時(shí)返回第一個(gè)布爾值為true的表達(dá)式的值。

上面代碼中第一個(gè)布爾值為true的表達(dá)式是第四個(gè)表達(dá)式,所以得到數(shù)值4。
或運(yùn)算符常用于為一個(gè)變量設(shè)置默認(rèn)值。

上面代碼表示,如果函數(shù)調(diào)用時(shí),沒有提供參數(shù),則該參數(shù)默認(rèn)設(shè)置為空字符串。