Maison > Article > interface Web > Méthode simple pour déterminer si un objet JavaScript est nul ou si l'attribut est vide_javascript skills
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; };
{} 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'