亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在JavaScript中檢查未定義或空變量?

如何在JavaScript中檢查未定義或空變量?

達令說 2019-07-13 18:46:24
我們經常在JavaScript代碼中使用以下代碼模式if (typeof(some_variable) != 'undefined' && some_variable != null){     // Do something with some_variable}有沒有一種不那么冗長的檢查方法,具有同樣的效果?根據一些論壇和文獻,簡單地說,以下幾點應該有同樣的效果。if (some_variable){     // Do something with some_variable}不幸的是,火蟲在運行時將此類語句計算為錯誤。some_variable是個未知數,而第一個就沒問題了。這僅僅是Firebug(不想要的)行為,還是這兩種方式之間真的有一些不同?
查看完整描述

3 回答

?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

你必須區分不同的情況:

  1. 變量可以是

    undefined

    未申報

    ..如果在其他上下文中訪問未聲明的變量,則會得到錯誤

    typeof.

if(typeof someUndeclaredVar == whatever) // worksif(someUndeclaredVar) // throws error

已聲明但未初始化的變量是undefined.

let foo;if (foo) //evaluates to false because foo === undefined
  1. 未定特性,就像someExistingObj.someUndefProperty..未定義的屬性不會產生錯誤,只會返回undefined,當轉換為布爾值時,計算結果為false..所以,如果你不關心0false,使用if(obj.undefProp)都沒問題?;谶@一事實,有一個常見的成語:

    value = obj.prop || defaultValue

    意思是“如果obj擁有財產prop,分配給value,否則將分配默認值。defautValue".

    有些人認為這種行為令人困惑,認為它會導致難以發現的錯誤,并建議使用in運算符

    value = ('prop' in obj) ? obj.prop : defaultValue


查看完整回答
反對 回復 2019-07-13
  • 3 回答
  • 0 關注
  • 579 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號