Rumah >hujung hadapan web >tutorial js >Kaedah mudah untuk menentukan sama ada objek JavaScript adalah nol atau atribut adalah kemahiran empty_javascript

Kaedah mudah untuk menentukan sama ada objek JavaScript adalah nol atau atribut adalah kemahiran empty_javascript

WBOY
WBOYasal
2016-05-16 16:35:151495semak imbas

Mula-mula mari kita bincangkan tentang perbezaan antara null dan undefined:

Melaksanakan jenis pembolehubah yang diisytiharkan tetapi tidak dimulakan dan tidak diisytiharkan akan mengembalikan "tidak ditentukan".

null mewakili penunjuk objek nol, dan jenis operasi akan mengembalikan "objek".

Secara amnya, nilai pembolehubah tidak ditetapkan secara eksplisit kepada tidak ditentukan, tetapi sebaliknya, untuk pembolehubah yang akan menyimpan objek, pembolehubah harus dibenarkan secara eksplisit untuk menyimpan nilai nol.

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

Dua fungsi berikut telah diberikan oleh Saudara Senior Deng kepada saya, terima kasih.

/*
* 检测对象是否是空对象(不包含任何可读属性)。
* 方法既检测对象本身的属性,也检测从原型继承的属性(因此没有使hasOwnProperty)。
*/
function isEmpty(obj)
{
for (var name in obj)
{
return false;
}
return true;
};

Objek kosong yang disebut di sini ialah {} atau null saya menulis kes ujian.

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;
};
Perbezaan antara

{} dan null:

Perkara ini sangat penting.

var a = {};
var b = null;

a.name = 'realwall';
b.name = 'jim'; //这里会报错,b为空指针对象,不能像普通对象一样直接添加属性。
b = a;
b.name = 'jim'; //此时 a 和 b 指向同一个对象。a.name, b.name 均为'jam'

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn