js中undefined該怎么判斷淺析
一、js中導(dǎo)致undefined的幾種情況:
1、變量聲明過(guò)但沒(méi)有賦值;
2、獲取對(duì)象中不存在的屬性時(shí);
3、函數(shù)需要實(shí)參,但是調(diào)用時(shí)沒(méi)有傳參,形參是undefined;
4、函數(shù)調(diào)用沒(méi)有返回值或者return后沒(méi)有數(shù)據(jù),接受函數(shù)返回的變量是undefined
二、判斷undefined的時(shí)候,我會(huì)直接這樣使用
let nothing;
if (typeof nothing === 'undefined') {
}
三、如何避免錯(cuò)誤
1、使用let、const,棄用var
2、訪問(wèn)不存在的屬性時(shí)不會(huì)出錯(cuò),而從不存在的屬性值獲取數(shù)據(jù)時(shí)才出現(xiàn)真正的問(wèn)題。所以取用時(shí)要先判斷是否存在。
如何檢查屬性是否存在
(1) obj.prop !== undefined :直接與undefined進(jìn)行比較
(2) typeof obj.prop !== ’undefined':驗(yàn)證屬性值類型
(3) obj.hasOwnproperty('prop'): 驗(yàn)證對(duì)象是否具有自己的屬性
(4) ‘prop' in obj:驗(yàn)證對(duì)象是否具有自己的屬性或繼承屬性
補(bǔ)充:判斷undefined需要用到typeof()方法
typeof的返回值
typeof運(yùn)算符的返回類型為字符串,值包括如下幾種:1. 'undefined' --未定義的變量或值
2. 'boolean' --布爾類型的變量或值
3. 'string' --字符串類型的變量或值
4. 'number' --數(shù)字類型的變量或值
5. 'object' --對(duì)象類型的變量或值,或者null(這個(gè)是js歷史遺留問(wèn)題,將null作為object類型處理)
6. 'function' --函數(shù)類型的變量或值
總結(jié)
到此這篇關(guān)于js中undefined該怎么判斷的文章就介紹到這了,更多相關(guān)js中undefined判斷內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JS實(shí)現(xiàn)的一個(gè)簡(jiǎn)單的Autocomplete自動(dòng)完成例子
這篇文章主要介紹了JS實(shí)現(xiàn)的一個(gè)簡(jiǎn)單的Autocomplete自動(dòng)完成例子,需要的朋友可以參考下2014-04-04
JavaScript函數(shù)增強(qiáng)以及額外知識(shí)
函數(shù)就是封裝了一段可以被重復(fù)執(zhí)行調(diào)用的代碼塊,下面這篇文章主要給大家介紹了關(guān)于JavaScript函數(shù)增強(qiáng)以及額外知識(shí)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06
JS格式化數(shù)字金額用逗號(hào)隔開(kāi)保留兩位小數(shù)
JS格式化數(shù)字金額只留兩位小數(shù)。寫(xiě)了個(gè)格式化函數(shù)??梢钥刂菩?shù)位數(shù),自動(dòng)四舍五入,感興趣的朋友可以了解下2013-10-10
給頁(yè)面渲染時(shí)間加速 干掉Dom Level 0 Event
我們?nèi)サ羰录壎ǖ倪壿?發(fā)現(xiàn)只渲染dom元素,不綁定事件的時(shí)間,僅僅125ms,可見(jiàn)事件綁定的時(shí)間消耗還是很大的 ,尤其是第一種方式,也就是Dom Level 0 Event,最為耗時(shí)2012-12-12

