簡単な方法でJavaScriptオブジェクトがnullまたは属性が空であると判断します.
1569 ワード
まずnullとundefinedの違いを言います.
宣言されていますが、初期化されていない変数と、宣言されていない変数に対してtypeofを実行し、「undefined」を返します.
nullは空のオブジェクトポインタを表し、typeof操作は「object」に戻ります.
通常は明示的ではない変数の値をundefinedに設定しますが、nullは反対にオブジェクトを保存する変数に対しては、null値を明確に保存します.
これはとても重要です.
宣言されていますが、初期化されていない変数と、宣言されていない変数に対して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'