JavaScript中只聲明但沒有初始化的變量和未聲明的變量以及null/undefined的區別

只聲明但沒有初始化的變量和未聲明的變量以及null/undefined的區別

1. 聲明但沒有初始化的變量

var aa;
alert(aa);

瀏覽器會彈出窗口顯示 undefined.javascript

由於對於使用了 var 聲明但沒有進行初始化定義的變量, 其值默認爲 undefined.java

2. 未聲明的變量(1)

alert(aa);

瀏覽器不會彈出任何東西. 由於 aa 是沒有聲明的變量.
打開 chrome 瀏覽器的控制檯會看到報錯以下:
clipboard.pngchrome

3. 未聲明的變量(2)

alert(typeof aa);

瀏覽器會彈出窗口顯示 undefined.瀏覽器

對於沒有聲明的變量, 只能執行一種操做(alert(aa) 就是錯誤的) . 就是使用 typeof 操做符檢驗它的類型. 它的類型和聲明但沒有進行初始化的變量的類型同樣, 都是 undefined.測試

總結: 已聲明可是沒有初始化的變量的值爲undefined. 而未聲明的變量雖然用 typeof 操做符結果爲 undefined, 可是並無值.

4. null 和 undefined 的區別

null 是一個空的對象引用.
undefined 是聲明但沒有被賦值的變量.
利用這兩個就能夠區分空對象指針和未經初始化的變量.spa

可是: 注意
alert(undefined == null); // 返回 true

undefined 值是派生自 null 值的. 因此對於它們的相等性測試, 返回 true指針

相關文章
相關標籤/搜索