簡(jiǎn)單方法判斷JavaScript對(duì)象為null或者屬性為空
首先說(shuō)下null與undefined區(qū)別:
對(duì)已聲明但未初始化的和未聲明的變量執(zhí)行typeof,都返回"undefined"。
null表示一個(gè)空對(duì)象指針,typeof操作會(huì)返回"object"。
一般不顯式的把變量的值設(shè)置為undefined,但null相反,對(duì)于將要保存對(duì)象的變量,應(yīng)明確的讓該變量保存null值。
var bj;
alert(bj); //"undefined"
bj = null;
alert(typeof bj); //"object"
alert(bj == null); //true
bj = {};
alert(bj == null); //false
下面兩個(gè)函數(shù)是鄧師兄給我的,感謝啊。
/*
* 檢測(cè)對(duì)象是否是空對(duì)象(不包含任何可讀屬性)。
* 方法既檢測(cè)對(duì)象本身的屬性,也檢測(cè)從原型繼承的屬性(因此沒有使hasOwnProperty)。
*/
function isEmpty(obj)
{
for (var name in obj)
{
return false;
}
return true;
};
這里所說(shuō)的空對(duì)象,到底是 {} 還是 null . 我寫了一個(gè)測(cè)試用例。
var a = {};
a.name = 'realwall';
console.log(isEmpty(a)); //false
console.log(isEmpty({})); //true
console.log(isEmpty(null)); //true
//注意參數(shù)為null時(shí)無(wú)語(yǔ)法錯(cuò)誤哦,即雖然不能對(duì)null空指針對(duì)象添加屬性,但可以使用for in 語(yǔ)句
?
/*
* 檢測(cè)對(duì)象是否是空對(duì)象(不包含任何可讀屬性)。
* 方法只既檢測(cè)對(duì)象本身的屬性,不檢測(cè)從原型繼承的屬性。
*/
function isOwnEmpty(obj)
{
for(var name in obj)
{
if(obj.hasOwnProperty(name))
{
return false;
}
}
return true;
};
{}與null的區(qū)別:
這個(gè)東西很重要。
var a = {};
var b = null;
a.name = 'realwall';
b.name = 'jim'; //這里會(huì)報(bào)錯(cuò),b為空指針對(duì)象,不能像普通對(duì)象一樣直接添加屬性。
b = a;
b.name = 'jim'; //此時(shí) a 和 b 指向同一個(gè)對(duì)象。a.name, b.name 均為'jam'
相關(guān)文章
JavaScript this綁定與this指向問(wèn)題的解析
本文主要介紹了JavaScript this綁定與this指向問(wèn)題的解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
js實(shí)現(xiàn)簡(jiǎn)單的驗(yàn)證碼
這篇文章主要介紹了js實(shí)現(xiàn)簡(jiǎn)單驗(yàn)證碼的方法,驗(yàn)證碼主要是為了網(wǎng)站的安全性,防止惡意注冊(cè)和登陸,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-12-12
在html頁(yè)面上拖放移動(dòng)標(biāo)簽
在html頁(yè)面上拖放移動(dòng)標(biāo)簽,需要的朋友可以參考下。2010-01-01
微信小程序?qū)崿F(xiàn)手機(jī)振動(dòng)效果
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)手機(jī)振動(dòng)效果,手機(jī)振動(dòng)應(yīng)用場(chǎng)景以 wx.vibrateLong() 方法為例結(jié)合實(shí)例代碼給大家詳細(xì)講解,需要的朋友可以參考下2023-07-07
html5+javascript制作簡(jiǎn)易畫板附圖
這篇文章主要介紹了使用html5+javascript制作的簡(jiǎn)易畫板,需要的朋友可以參考下2014-04-04
js如何準(zhǔn)確獲取當(dāng)前頁(yè)面url網(wǎng)址信息
這篇文章主要為大家介紹了js準(zhǔn)確獲取當(dāng)前頁(yè)面url網(wǎng)址信息的多種方法,包括正則法、split拆分法等,需要的朋友可以參考下2016-04-04

