js中undefined該怎么判斷淺析
一、js中導(dǎo)致undefined的幾種情況:
1、變量聲明過但沒有賦值;
2、獲取對(duì)象中不存在的屬性時(shí);
3、函數(shù)需要實(shí)參,但是調(diào)用時(shí)沒有傳參,形參是undefined;
4、函數(shù)調(diào)用沒有返回值或者return后沒有數(shù)據(jù),接受函數(shù)返回的變量是undefined
二、判斷undefined的時(shí)候,我會(huì)直接這樣使用
let nothing;
if (typeof nothing === 'undefined') {
}
三、如何避免錯(cuò)誤
1、使用let、const,棄用var
2、訪問不存在的屬性時(shí)不會(huì)出錯(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)證對(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歷史遺留問題,將null作為object類型處理)
6. 'function' --函數(shù)類型的變量或值
總結(jié)
到此這篇關(guān)于js中undefined該怎么判斷的文章就介紹到這了,更多相關(guān)js中undefined判斷內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javascript刪除一個(gè)html元素節(jié)點(diǎn)的方法
這篇文章主要介紹了javascript刪除一個(gè)html元素節(jié)點(diǎn)的方法,可通過獲取父節(jié)點(diǎn)再查找并刪除子節(jié)點(diǎn)來實(shí)現(xiàn)該功能,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12
javascript輕松實(shí)現(xiàn)當(dāng)鼠標(biāo)移開時(shí)已彈出子菜單自動(dòng)消失
本文為大家詳細(xì)介紹下使用javascript實(shí)現(xiàn)當(dāng)鼠標(biāo)移開時(shí)已彈出子菜單自動(dòng)消失,具體如下,感興趣的朋友不要錯(cuò)過2013-12-12
微信小程序?qū)崿F(xiàn)拍照和相冊(cè)選取圖片
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)拍照和相冊(cè)選取圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-05-05
通過掃小程序碼實(shí)現(xiàn)網(wǎng)站登陸功能
這篇文章主要介紹了通過掃小程序碼實(shí)現(xiàn)網(wǎng)站登陸功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08
基于cornerstone.js的dicom醫(yī)學(xué)影像查看瀏覽功能
這篇文章主要介紹了基于cornerstone.js的dicom醫(yī)學(xué)影像查看瀏覽功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07
提高JavaScript執(zhí)行效率的23個(gè)實(shí)用技巧
JavaScript是一門非常流行的編程語言,許多開發(fā)者都會(huì)把JavaScript選為入門語言,本文向大家分享JavaScript提高執(zhí)行效率的小技巧、最佳實(shí)踐等非常實(shí)用的內(nèi)容2017-03-03
curring的概念將函數(shù)式編程的概念和默認(rèn)參數(shù)以及可變參數(shù)結(jié)合在一起.一個(gè)帶n個(gè)參數(shù),curried的函數(shù)固化第一個(gè)參數(shù)為固定參數(shù),并返回另一個(gè)帶n-1個(gè)參數(shù)的函數(shù)對(duì)象,分別類似于LISP的原始函數(shù)car和cdr的行為。currying能泛化為偏函數(shù)應(yīng)用(partial function application, PFA),p 這種函數(shù)將任意數(shù)量(順序)的參數(shù)的函數(shù)轉(zhuǎn)化為另一個(gè)帶剩余參數(shù)的函數(shù)對(duì)象2012-02-02
JavaScript中的對(duì)象的extensible屬性介紹
這篇文章主要介紹了JavaScript中的對(duì)象的extensible屬性介紹,JavaScript中,對(duì)象的extensible屬性用于表示是否允許在對(duì)象中動(dòng)態(tài)添加新的property,需要的朋友可以參考下2014-12-12
JavaScript中實(shí)現(xiàn)數(shù)組分組功能的方法詳解
最近,JavaScript引入了一個(gè)備受期待的功能:原生支持?jǐn)?shù)組分組,這一特性使得在處理復(fù)雜的數(shù)據(jù)集時(shí)變得更加簡單和高效,本文將深入探討這一全新的JavaScript特性,希望對(duì)大家有所幫助2023-12-12

