JavaScript Objects 对象
在本教程中,您将了解 JavaScript 对象以及如何有效地操作对象属性
在本教程中,您将了解 JavaScript 对象以及如何有效地操作对象属性。
JavaScript 对象简介
在 JavaScript ,对象是键值对的无序集合。每个键值对称为一个属性。
属性的键可以是字符串。属性的值可以是任何值,例如字符串、数值、数组,甚至是函数。
JavaScript 为您提供了多种创建对象的方法。最常用的一种是使用对象字面量创建对象。
代码 let empty = {};
使用对象字面量创建一个空对象:
let empty = {};
要创建具有属性的对象,请在大括号内使用 key:value
。例如,以下代码创建person
对象:
let person = { firstName: 'John', lastName: 'Doe'};
person
对象有两个属性 firstName
和 lastName
具有相应的值 '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
存在 propertyName
则 in
运算符返回 true
。
propertyName in objectName
以下示例创建一个 employee
对象并使用 in
运算符检查对象中是否存在 ssn
和employeeId
属性。
let employee = {
firstName: 'Peter',
lastName: 'Doe',
employeeId: 1
};
console.log('ssn' in employee);
console.log('employeeId' in employee);
false
true
结论
- 对象是键值对的集合。
- 使用点符号
.
或类似数组的符号[]
访问对象的属性。 delete
运算符从对象删除属性。in
运算符检查对象是否存在属性。