Maison  >  Article  >  interface Web  >  Méthode simple pour déterminer si un objet JavaScript est nul ou si l'attribut est vide_javascript skills

Méthode simple pour déterminer si un objet JavaScript est nul ou si l'attribut est vide_javascript skills

WBOY
WBOYoriginal
2016-05-16 16:35:151480parcourir

Parlons d’abord de la différence entre null et indéfini :

L'exécution de typeof sur des variables déclarées mais non initialisées et non déclarées renverra "undefined".

null représente un pointeur d'objet nul, et le type d'opération renverra "objet".

Généralement, la valeur d'une variable n'est pas explicitement définie sur undefined, mais au contraire, pour une variable qui va enregistrer un objet, la variable doit être explicitement autorisée à enregistrer la valeur nulle.

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

Les deux fonctions suivantes m'ont été confiées par le frère aîné Deng, merci.

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

L'objet vide mentionné ici est {} ou null J'ai écrit un scénario de test.

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;
};
La différence entre

{} et null :

Cette chose est très importante.

var a = {};
var b = null;

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

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn