簡單方法判斷JavaScript對象為null或者屬性為空白

來源:互聯網
上載者:User

簡單方法判斷JavaScript對象為null或者屬性為空白

 首先說下null與undefined區別:

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

null表示一個Null 物件指標,typeof操作會返回"object"。

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

 

1

2

3

4

5

6

7

var bj;

alert(bj); //"undefined"

bj = null;

alert(typeof bj); //"object"

alert(bj == null); //true

bj = {};

alert(bj == null); //false

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

 

1

2

3

4

5

6

7

8

9

10

11

12

/*

* 檢測對象是否是Null 物件(不包含任何可讀屬性)。

* 方法既檢測對象本身的屬性,也檢測從原型繼承的屬性(因此沒有使hasOwnProperty)。

*/

function isEmpty(obj)

{

for (var name in obj)

{

return false;

}

return true;

};

這裡所說的Null 物件,到底是 {} 還是 null . 我寫了一個測試案例。

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

var a = {};

a.name = 'realwall';

console.log(isEmpty(a)); //false

console.log(isEmpty({})); //true

console.log(isEmpty(null)); //true

  

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

  

  

?

/*

* 檢測對象是否是Null 物件(不包含任何可讀屬性)。

* 方法只既檢測對象本身的屬性,不檢測從原型繼承的屬性。

*/

function isOwnEmpty(obj)

{

for(var name in obj)

{

if(obj.hasOwnProperty(name))

{

return false;

}

}

return true;

};

{}與null的區別:

這個東西很重要。

 

1

2

3

4

5

6

7

var a = {};

var b = null;

  

a.name = 'realwall';

b.name = 'jim'; //這裡會報錯,b為空白指標對象,不能像普通對象一樣直接添加屬性。

b = a;

b.name = 'jim'; //此時 a 和 b 指向同一個對象。a.name, b.name 均為'jam'

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.