DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 簡單方法判斷JavaScript對象為null或者屬性為空
簡單方法判斷JavaScript對象為null或者屬性為空
編輯:關於JavaScript     

首先說下null與undefined區別:

對已聲明但未初始化的和未聲明的變量執行typeof,都返回"undefined"。

null表示一個空對象指針,typeof操作會返回"object"。

一般不顯式的把變量的值設置為undefined,但null相反,對於將要保存對象的變量,應明確的讓該變量保存null值。

var bj;
alert(bj); //"undefined"
bj = null;
alert(typeof bj); //"object"
alert(bj == null); //true
bj = {};
alert(bj == null); //false

下面兩個函數是鄧師兄給我的,感謝啊。

/*
* 檢測對象是否是空對象(不包含任何可讀屬性)。
* 方法既檢測對象本身的屬性,也檢測從原型繼承的屬性(因此沒有使hasOwnProperty)。
*/
function isEmpty(obj)
{
for (var name in obj)
{
return false;
}
return true;
};

這裡所說的空對象,到底是 {} 還是 null . 我寫了一個測試用例。

var a = {};
a.name = 'realwall';
console.log(isEmpty(a)); //false
console.log(isEmpty({})); //true
console.log(isEmpty(null)); //true

//注意參數為null時無語法錯誤哦,即雖然不能對null空指針對象添加屬性,但可以使用for in 語句

  
?
/*
* 檢測對象是否是空對象(不包含任何可讀屬性)。
* 方法只既檢測對象本身的屬性,不檢測從原型繼承的屬性。
*/
function isOwnEmpty(obj)
{
for(var name in obj)
{
if(obj.hasOwnProperty(name))
{
return false;
}
}
return true;
};

{}與null的區別:

這個東西很重要。

var a = {};
var b = null;

a.name = 'realwall';
b.name = 'jim'; //這裡會報錯,b為空指針對象,不能像普通對象一樣直接添加屬性。
b = a;
b.name = 'jim'; //此時 a 和 b 指向同一個對象。a.name, b.name 均為'jam'

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved