JavaScript 中變量的有效性判斷

封面

JavaScript 語(yǔ)言設(shè)計(jì)的不嚴(yán)謹(jǐn),有時(shí)候很容易把人給搞暈,比如說(shuō)這個(gè)變量有效性判斷。

先舉幾個(gè)例子:


想要理解為什么得出上面的結(jié)果,首先得明白 undefined 和 null 在 JavaScript 中所表示的不同含義。

這里借用下阮一峰老師博客中的一個(gè)結(jié)論:

null和undefined基本是同義的,只有一些細(xì)微的差別。

null表示"沒(méi)有對(duì)象",即該處不應(yīng)該有值。典型用法是:
(1) 作為函數(shù)的參數(shù),表示該函數(shù)的參數(shù)不是對(duì)象。
(2) 作為對(duì)象原型鏈的終點(diǎn)。

undefined表示"缺少值",就是此處應(yīng)該有一個(gè)值,但是還沒(méi)有定義。典型用法是:
(1)變量被聲明了,但沒(méi)有賦值時(shí),就等于undefined。
(2) 調(diào)用函數(shù)時(shí),應(yīng)該提供的參數(shù)沒(méi)有提供,該參數(shù)等于undefined。
(3)對(duì)象沒(méi)有賦值的屬性,該屬性的值為undefined。
(4)函數(shù)沒(méi)有返回值時(shí),默認(rèn)返回undefined。

在 Java 中,if 條件中必須使用 boolean 表達(dá)式, 所以使用 JavaScript 時(shí),也會(huì)習(xí)慣性的認(rèn)為如此。實(shí)際上,JavaScript 中 null,undefined,0,"",false 作為 if 的條件的時(shí)候,都被認(rèn)為是 false 。

所以,在判斷變量時(shí),可以用以下幾種方式:

  1. 精確判斷一個(gè)變量是否為 undefined


  2. 精確判斷一個(gè)變量是否為 null


  3. 判斷一個(gè)變量是否為 null 或 undefined


  4. 判斷值是否有效, 可以直接在if表達(dá)式中使用變量名稱, 我常用來(lái)判斷一個(gè)輸入框值是否有效(注意: 如果變量值為0, 會(huì)被當(dāng)作無(wú)效)



搜索微信號(hào)threetimes1992,關(guān)注我。

內(nèi)容大多會(huì)是后端技術(shù)、前端工程、DevOps,偶爾會(huì)有一些大數(shù)據(jù)相關(guān),會(huì)推薦一些好玩的東西。希望你會(huì)喜歡~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容