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