javascript
JavaScript数据类型 - Undefined类型
Undefined 類型
Undefined類型只有一個值,即特殊的undefined。在使用var聲明變量但未對其進行初始化時,這個變量的值就是undefined,例如:
var message; console.log(message); //undefinedvar message = undefined; console.log(message); //undefined在這個例子的第一段中,只聲明了變量message,但未對其進行初始化。所以在控制臺輸出時會得到一個undefined。而第二段代碼中我們使用了undefined值顯示的初始化了message變量,得到的結(jié)果仍然是undefined。但實際上我們沒必要這么做的,因為就像第一段代碼中,只要是未經(jīng)初始化的變量默認都會取值undefined。
一般而言,不存在需要顯示地把一個變量設(shè)置為undefined值的情況。字面值undefined的主要目的是用于比較。不過包含undefined值的變量和尚未定義的變量還是不一樣的。看看下面這個例子:
?
運行上面的代碼,第一個console會打印輸出undefined,而第二個console則會產(chǎn)生錯誤,因為變量age根本就沒有聲明。對于尚未聲明過的變量,只能執(zhí)行一項操作,就是用typeof檢查數(shù)據(jù)類型,這個時候是不會報錯的。
然而,令人困惑的是:對于已經(jīng)聲明但未初始化的變量執(zhí)行typeof操作會返回undefined值,而對尚未聲明的變量執(zhí)行typeof操作,結(jié)果同樣返回undefined的值,看下面的例子:
var message; //聲明變量但未初始化 //var age; //未聲明的變量console.log(typeof message); //undefined console.log(typeof age); //undefined結(jié)果表明:對于聲明未初始化和未聲明的變量執(zhí)行typeof操作都返回了undefined值;其實這個結(jié)果也有其邏輯上的合理性,因為雖然這兩種變量從技術(shù)角度看有著本質(zhì)的區(qū)別,但是實際上無論對哪種變量都不可能執(zhí)行真正的操作。
tips:
即便未初始化的變量會自動被賦予undefined值,但顯示的初始化變量依然是明智的選擇,也是墻裂推薦的選擇。因為如果能夠做到這一點,那么當(dāng)typeof操作符返回undefined值時,我們就知道被檢測的變量還沒有被定義,而不是尚未初始化。
總結(jié)
以上是生活随笔為你收集整理的JavaScript数据类型 - Undefined类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MyBatis整合Spring的实现(1
- 下一篇: 01-探寻 JavaScript 反爬虫