+運算子可以進行加法運算或字串連接。如果你想要的是加法運算,請確保兩個表達式的值都是數字。
typeof
好多人認為typeof是一個函數,其實它是一個操作符,呼叫方法是typeof hello, 當然函數式的呼叫方法也可以: typeof(hello),這裡還是推薦操作符式的呼叫方式。
typeof運算子用來判斷變數的型別,它的回傳值有"number", "string", "boolean", "undefined", "function"和"object"。如果運算數為一個陣列或null,那麼結果是"object",這就不準確了。
typeof是唯一一個可以對未定義變數進行操作的操作符,其它任何時候都不可以對未定義變數進行操作。
!!
!!不能算一個操作符,而是兩個!的連續操作,它主要用於將給定的操作數轉換成布林類型,這樣就可以方便的用於條件判斷,例如var a = {}, !!a的值為true,所以if (!!a )的條件為真。
&&
&&的工作原理是運算子兩邊的表達式都為真時返回真,否則返回假。其實在JavaScript裡如果第一個表達式的值為假則傳回第一個表達式的值,否則則傳回第二個表達式的值。例如:0 && 2的值為0,不是false,'' && 2的值為'',2 && {}的值為{},而非false。
||
||的工作原理是如果第一個表達式的值為真則傳回第一個表達式的值,否則傳回第二個表達式的值。例如:2 || 0的值為2,[] || 2的值為[],0 || 2的值為0。
這個特性最常用的場合是給變數賦預設值。例如: a = a || {};這是創建空對象的常用寫法,如果a已經存在,則自已賦值給自己,否則將空對象{}賦值經變量a。其它用法有a = b || 3;等同於if (b) { a = 3;}
delete
delete 運算子刪除對先前定義的物件屬性或方法的參考。例如:var o = {a: 1}, delete o.a;屬性a被刪除。 delete運算子也可以用來刪除陣列元素,例如: a = [1, 2, 3], delete a[1];現在a的值為[1, undefined, 2],它只是把對應的元素變成undefined,數組長度不變。注意:delete不能刪除系統自帶的原始屬性。
void
void 運算子對任何值傳回 undefined。此運算符通常用於避免輸出不應該輸出的值,例如,從 HTML 的 元素呼叫 JavaScript 函數時。要正確做到這一點,函數不能傳回有效值,否則瀏覽器將清空頁面,只顯示函數的結果。
===
=用於賦值,==用來判斷兩邊的表達式的值是否相等,===則同時判斷兩邊的表達式的值和型別同時相等,因為JavaScript是弱型別語言,變數宣告時是不知道類型的,建議永遠使用===來判斷表達式的值是否相等。
new
new運算子用於使用建構子創造物件。例如:new Book(),或new Book,後面的括號不是必需的。具體可以參考 JavaScript構造函數原理。
函數呼叫運算子()
函數名字 + ()表示執行函數。例如 var hello = function() {}, hello()則執行hello函數。