**:
首先說下null與undefined區別:
對已宣告但未初始化的和未宣告的變數執行typeof,都返回 "undefined" 。
null表示乙個空物件指標,typeof操作會返回 "object" 。
一般不顯式的把變數的值設定為undefined,但null相反,對於將要儲存物件的變數,應明確的讓該變數儲存null值。
varbj;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 這種互斥的方法去判斷,只能在...