隨著 Ajax 應用的流行,JavaScript 語言得到了越來越多的關注。開發人員對 JavaScript 的使用也日益深入。 JavaScript 已經不再只是用來為頁面添加一些花哨的效果,它已經成為構建 Ajax 應用的重要基石。 JavaScript 作為一種專門設計用來在瀏覽器中執行的動態語言,它有許多重要的特性,並且不同於傳統的 Java 或 C++ 語言。熟悉這些特性可以協助開發人員更好的開發 Ajax 應用。本文章介紹了 JavaScript 語言中十三個比較重要的特性,包括 prototype、執行內容、範圍鏈和閉包等。
null 與 undefined
JavaScript 中一共有 5 種基本類型,分別是 String、Number、Boolean、Null 和 Undefined 。前 3 種都比較好理解,後面兩種就稍微複雜一點。 Null 類型只有一個值,就是 null ; Undefined 類型也只有一個值,即 undefined 。 null 和 undefined 都可以作為字面量(literal)在 JavaScript 代碼中直接使用。
null 與對象引用有關係,表示為空白或不存在的對象引用。當聲明一個變數卻沒有給它賦值的時候,它的值就是 undefined 。
undefined 的值會出現在如下情況:
從一個對象中擷取某個屬性,如果該對象及其 prototype 鏈 中的對象都沒有該屬性的時候,該屬性的值為 undefined 。
一個 function 如果沒有顯式的通過 return 來傳回值給其調用者的話,其傳回值就是 undefined 。有一個特例就是在使用new的時候。
JavaScript 中的 function 可以聲明任意個形式參數,當該 function 實際被調用的時候,傳入的參數的個數如果小於聲明的形式參數,那麼多餘的形式參數的值為 undefined 。
關於 null 和 undefined 有一些有趣的特性:
如果對值為 null 的變數使用 typeof 操作符的話,得到的結果是 object ;而對 undefined 的值使用 typeof,得到的結果是 undefined 。如 typeof null === "object";typeof undefined === "undefined"
null == undefined,但是 null !== undefined
if ("" || 0)
對於 if 運算式,大家都不陌生。 JavaScript 中 if 後面緊跟的運算式的真假值判斷與其它語言有所不同。具體請看錶 1。
表 1. JavaScript 中的真假值
類型 |
真假值 |
Null |
總是為假(false) |
Undefined |
總是為假(false) |
Boolean |
保持真假值不變 |
Number |
+0,-0 或是 NaN 的時候為假,其它值為真 |
String |
Null 字元串的時候為假,其它值為真 |
Object |
總是為真(true) |
從表 1中可以看到,在 JavaScript 中使得 if 判斷為假的值可能有 null、undefined、false、+0、-0、NaN 和Null 字元串("")。