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