在JavaScript对象的属性是无序的集合。每个键值对称为一个属性。对象属性的键可以是字符串。属性的值可以是任何值,例如字符串、数字、数组,甚至是函数。
JavaScript为您提供多种创建对象的方法。最常用的一种是使用对象字面量创建对象。
代码let empty = {};
使用对象字面量创建一个空对象。要创建具有属性的对象,请在大括号添加键值对作为属性。
代码let person = { firstName: 'John', lastName: 'Doe'};
创建person
对象。person
对象有两个属性firstName
和lastName
对应的值是'John'
和'Doe'
。
访问对象属性
要访问对象的属性,可以有两种访问方式,第一种是点表示法和数组的索引表示法。
代码objectName.propertyName
使用点符号来访问对象的属性,例如代码person.firstName
访问person
对象的firstName
属性。
代码objectName['propertyName']
通过数组的表示法访问对象属性的值。当属性名称包含空格时,您需要将其放在单引号或者双引号内。
例如要访问address
对象的'building no'
属性,您需要使用数组的表示法,例如代码console.info(address['building no']);
。
let person = {
firstName: 'John',
lastName: 'Doe'
};
console.log(person.firstName);
let address = {
'building no': 3960,
street: 'North 1st street',
state: 'CA',
country: 'USA'
};
console.info(address['building no']);
如果你以点表示法访问带有空格的对象属性,例如代码address.'building no';
。你将会得到错误消息SyntaxError: Unexpected string
。
通常不建议在对象的属性名称使用空格。如果访问对象不存在的属性将会返回undefined
。例如代码console.log(address.district);
。
修改属性的值
要更改属性的值,您可以使用赋值运算符=
。在以下示例中,我们将person
对象的firstName
属性值更改为'Jane'
。
let person = {
firstName: 'John',
lastName: 'Doe'
};
person.firstName = 'Jane';
console.log(person);
添加对象属性
与Java和C#等其他编程语言中的对象不同,您还可以在创建对象后向对象添加属性。代码person.age = 25;
将age
属性添加到person
对象并设置属性值是25。
person.age = 25;
删除对象属性
要删除对象的属性,您可以使用运算符delete
。代码语法是delete objectName.propertyName;
。
例如代码delete person.age;
从person
对象中删除属性age
。如果您尝试重新访问 age
属性,您将获得undefined
值。
delete person.age;
检查对象属性是否存在
要检查对象中是否存在属性,可以使用运算符in
。代码语法是propertyName in objectName
。如果对象中存在属性,in
运算符返回true
,否则返回false
。
以下示例创建employee
对象并使用运算符in
检查对象中是否存在ssn
和employeeId
属性。
let employee = {
firstName: 'Peter',
lastName: 'Doe',
employeeId: 1
};
console.log('ssn' in employee);
console.log('employeeId' in employee);
结论
对象是键值对的集合。可以使用点符号 .
或数组的符号[]
访问对象的属性。delete
运算符可以在对象删除属性。in
运算符可以检查对象否存在指定属性。