Undefined類型只有一個值 即特殊的undefined 在使用var聲明變量但未對其加以初始化時 這個變量的值就是undefined javascript
var message alert(message == undefined); //true
此例子聲明message 但未對其進行初始化,比較這個變量的自變量與undefined字面量 結果代表他們是相等的; 這個例子使用undefined值顯式初始化變量message 但咱們沒有必要這麼作 由於未初始化的值默認值就是undefinedjava
不過 包含undefined值得變量和還沒有定義的變量仍是不同 指針
var message // var age alert(message); //彈窗'undefined' // alert(age); //產生錯誤
對於還沒有聲明的變量 只能執行一項操做 即便用typeof操做符檢測其數據類型對象
var message // var age alert(typeof message); //彈窗'undefined' alert(typeof age); //彈窗'undefined'
NULL類型是第二個只有一個值的數據類型 這個特殊的值是NULL,從邏輯角度看NULL值表示一個空對象指針,這也正是使用typeof操做符檢測null時值會返回"object"的緣由blog
var message = null; alert( typeof message); //彈窗'object'
若是定義的變量準備在未來用於保存對象 那麼最好將該變量初始化爲null 而不是其餘值 這樣一來只要檢測null值就能夠知道相應的變量是否已經保存了一個對象的引用 ip
if( message != null){ //對message對象執行某些操做 }
實際上 undefined的值是派生自null值得class
alert( null ==undefined);//true