當前位置:主頁 > 網站優化 >

數據類型之undefined

作者: 奕星SEO 分類: 網站優化 發布時間: 2019-08-15 16:16 內容來源:網絡整理閱讀量:

undefined類型只有一個值,即特殊的undefined。在使用var聲明變量但未對其加以初始化時,這個變量的值就是undefined,例如:

var message; alert(message == undefined); //ture

這個例子只聲明了變量message,但未對其進行初始化。比較這個變量與undefined字面量,結果表明它們是相等的。這個例子與下面的例子是是等價的:

var message = undefined; alert(message == undefined); // true

這個例子使用undefined值顯示初始化了變量message。但我們沒有必要這么做因為未經初始化的值默認就會取得undefined值。

一般而言,不存在需要顯示地把一個變量設置為undefined值的情況。字面值undefined的主要目的是用于比較,而ECMA-262第三版之前的版本中并沒有規定這個值。第三版引入這個值是為了正式區分空對象與未經初始化的變量。

不過,包含undefined值的變量與尚未定義的變量還是不一樣的

var message; //這個變量聲明之后默認取得了undefined值 //下面這個變量并沒有聲明 //var age alert(message);//"undefined" alert(age);//錯誤

運行以上代碼,第一個警告框會顯示變量message的值,即“undefined”。而第二個警告框由于傳遞給alert()函數的是尚未聲明的變量age,則會導致一個錯誤。對于尚未聲明過的變量,只能執行一項操作,即是用typeof操作符檢測其數據類型(對未經聲明的變量調用delete不會導致錯誤,但是這樣做沒有實際意義,而且在嚴格模式下確實會導致錯誤)。

對未經初始化的變量執行typeof操作符會返回undefined值,而對為聲明的變量執行typeof是也會返回undefined值。

var message;//這個變量聲明以后默認取得了undefined值 //下面這個變量并沒有聲明 //var age; alert(message);//"undefined" alert(age);//"undefined"

通過結果可以看出,對未經初始化和未聲明的變量執行typeof操作符都會返回undefined值。這個結果有其邏輯上的合理性。因為雖然這兩種變量從技術角度來講有本質區別,但是實際上無論對于哪種變量也不可能執行真正的操作。

未初始化的變量會被自動賦予undefined值,那么當typeof操作符返回undefined值時,我們就知道被檢測的變量還沒有被聲明,而不是尚未初始化。


本文鏈接地址:http://www.pxynqa.icu/webyouhua/1376.html
上一篇:<<數據類型之NULL
下一篇:檢測變量的數據類型>>
吉林时时历史开奖号码