JavaScript对象属性存在

JavaScript对象属性存在教程

JavaScript 中,判断一个 对象 是否有某个 属性 有三种方法,即:使用点或者中括号运算符、使用 in 语句和使用 hasOwnProperty 方法。

JavaScript运算符判断对象属性详解

语法

obj.attr; obj[attr];

说明

我们可以使用点运算符或者使用中括号运算符,判断对象的属性是否存在,如果不存在,则会返回 undefined,否则,会返回对象的属性的值。

JavaScript in判断对象属性详解

语法

attr in obj;

返回值

如果对象 obj 中,含有属性 attr,那么 in 语句返回 true,否则,返回 false。

JavaScript hasOwnProperty判断对象属性详解

语法

obj.hasOwnProperty(attr);

参数

参数 描述
attr 需要判断的属性。

返回值

hasOwnProperty 方法返回一个布尔值,判断对象是否包含特定的自身(非继承)属性,如果存在,则返回 true,否则,返回 false。

案例

运算符判断对象属性

使用点运算符或者中括号运算符判断对象是否有属性

<!DOCTYPE html> <html> <head> <title>JavaScript运算符判断对象是否有某个属性</title> <script type="text/javascript"> console.log("嗨客网(www.haicoder.net)"); function createPerson(name, age, sex){ var person = new Object(); person.name = name; person.age = age; person.sex = sex; person.sayHi = function(){ console.log("I am", this.name, "i am", this.age, "years old", "and my sex is", this.sex); } return person; } var person = createPerson("HaiCoder", 109, "F"); if (person.name === undefined){ console.log("Person has no name attr"); }else{ console.log("Person has name attr, val =", person.name); } if (person["score"] === undefined){ console.log("Person has no score attr"); }else{ console.log("Person has score attr, val =", person.score); } </script> </head> </html>

程序运行后,控制台输出如下:

25_JavaScript判断对象是否有属性.png

我们创建了一个 person 对象,接着,分别使用了点运算符和小括号运算符判断了对象是否有某个属性。因为使用运算符直接访问对象的属性,如果对象的属性不存在,则返回 undefined,存在,则返回属性对应的值。

因此,最后,我们直接使用 if 语句 将属性的值与 undefined 进行比较,如果相等,则表明没有该属性,否则,则表明存在该属性。

in 语句判断对象属性

使用 in 语句判断对象是否有属性

<!DOCTYPE html> <html> <head> <title>JavaScript in语句对象是否有某个属性</title> <script type="text/javascript"> console.log("嗨客网(www.haicoder.net)"); function createPerson(name, age, sex){ var person = new Object(); person.name = name; person.age = age; person.sex = sex; person.sayHi = function(){ console.log("I am", this.name, "i am", this.age, "years old", "and my sex is", this.sex); } return person; } var person = createPerson("HaiCoder", 109, "F"); if ("name" in person){ console.log("Person has name attr, val =", person.name); }else{ console.log("Person has no name attr"); } if ("score" in person){ console.log("Person has score attr, val =", person.score); }else{ console.log("Person has no score attr"); } </script> </head> </html>

程序运行后,控制台输出如下:

26_JavaScript in语句判断对象是否有属性.png

我们使用 in 语句,判断对象是否有某个属性,如果返回 true,则表明有该属性,如果返回 false,则表明没有该属性。

JavaScript对象属性存在总结

我们可以使用点运算符或者使用中括号运算符,判断对象的属性是否存在,如果不存在,则会返回 undefined,否则,会返回对象的属性的值。

我们使用 in 语句,判断对象 obj 中,是否含有属性 attr,如果存在,那么 in 语句返回 true,否则,返回 false。