判斷JavaScript物件為null或者屬性為空

2021-09-09 01:22:16 字數 1407 閱讀 3898

**:

首先說下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)

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)

}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'

JavaScript判斷物件是否為空

非jquery api。部分方法使用到es6中的api 將 轉成字串型別,然後通過string比較 let obj console.log json.stringify obj expect console trueobject.getownpropertynames 方法返回乙個由指定物件的所有自...

判斷javascript的物件型別

形如 typeof undefined undefined typeof qw string typeof 1 number typeof true boolean typeof function function 不區分null 陣列 typeof null object typeof objec...

javaScript判斷json是否為空

var jsonstr 1 判斷json是否為空 jquery.isemptyobject 2 判斷物件是否為空 1 if typeof x undefined 2 if typeof x object 3 if x 其中第三種是最簡單的方法,但是第三種就不能用if x 這種互斥的方法去判斷,只能在...