在本教程中,您将了解 JavaScript 对象以及如何有效地操作对象属性。

JavaScript 对象简介

在 JavaScript ,对象是键值对的无序集合。每个键值对称为一个属性。

属性的键可以是字符串。属性的值可以是任何值,例如字符串数值数组,甚至是函数

JavaScript 为您提供了多种创建对象的方法。最常用的一种是使用对象字面量创建对象。

代码 let empty = {}; 使用对象字面量创建一个空对象:

let empty = {};

要创建具有属性的对象,请在大括号内使用 key:value。例如,以下代码创建person 对象:

let person = { firstName: 'John', lastName: 'Doe'};

person 对象有两个属性 firstNamelastName 具有相应的值 'John''Doe'

当一个对象有多个属性时,您可以像上面的示例一样使用逗号 , 来分隔它们。

访问属性

要访问对象的属性,您可以使用两种表示法之一:点表示法和类似数组的表示法。

点符号 .

下面说明如何使用点符号来访问对象的属性:

objectName.propertyName

例如,要访问 person 对象的 firstName 属性,可以使用表达式 person.firstName:

person.firstName

此示例创建一个 person 对象并向控制台打印名字和姓氏:

let person = {
    firstName: 'John',
    lastName: 'Doe'
};

console.log(person.firstName);
console.log(person.lastName);

数组符号 [ ]

下面说明了如何通过类似数组的表示法访问对象属性的值:

objectName['propertyName']

例如:

let person = {
    firstName: 'John',
    lastName: 'Doe'
};

console.log(person['firstName']);
console.log(person['lastName']);

当属性名称包含空格时,您需要将其放在引号内。例如,address 对象的 'building no' 属性:

let address = {
    'building no': 3960,
    street: 'North 1st street',
    state: 'CA',
    country: 'USA'
};

要访问'building no'属性,您需要使用类似数组的表示法:

address['building no'];

如果你使用点符号,JavaScript 引擎将会抛出错误 SyntaxError: Unexpected string:

address.'building no';
SyntaxError: Unexpected string

请注意,在对象的属性名称中使用空格不是一个好习惯。

访问对象不存在的属性将会返回 undefined

console.log(address.district);
undefined

修改属性的值

要更改属性的值,可以使用赋值运算符( =)。例如:

let person = {
    firstName: 'John',
    lastName: 'Doe'
};

person.firstName = 'Jane';

console.log(person);
{ firstName: 'Jane', lastName: 'Doe' }

在此示例中,我们将 person 对象的 firstName 属性值从 'John' 修改为 'Jane'

向对象添加新属性

与 Java 和 C# 等其他编程语言中的对象不同,您可以在创建对象后向对象添加属性。

语句 person.age = 25;age 属性添加到 person 对象并为其分配值 25:

person.age = 25;

删除对象的属性

要删除对象的属性,您可以使用 delete 运算符:

delete objectName.propertyName;

语句 delete person.age;person 对象中删除属性 age

delete person.age;

如果您尝试重新访问 age 属性,您将获得一个值 undefined

检查属性是否存在

要检查对象中是否存在属性,可以使用 in 运算符,如果 objectName 存在 propertyNamein 运算符返回 true

propertyName in objectName

以下示例创建一个 employee 对象并使用 in 运算符检查对象中是否存在 ssnemployeeId 属性。

let employee = {
    firstName: 'Peter',
    lastName: 'Doe',
    employeeId: 1
};

console.log('ssn' in employee);
console.log('employeeId' in employee);
false
true

结论

  • 对象是键值对的集合。
  • 使用点符号  . 或类似数组的符号 [] 访问对象的属性。
  • delete 运算符从对象删除属性。
  • in 运算符检查对象是否存在属性。