「这是我参与2022首次更文挑战的第1天,活动详情查看:2022首次更文挑战」。
第1章 理解Object
1.1 创建Object对象的两种方式
实例化Object对象的方式有两种:使用Object构造器和使用对象的字面量。例如:
var person1 = {
name: '张美丽'
};
var person2 = new Object();
person2.name = '李美丽';
1.2 给Object对象添加属性
我们可以随时随地为对象添加属性,也可以随时修改属性的值。
var person1 = {
name: '王美丽'
};
var person2 = new Object();
person2.name = '孙美丽';
//给对象添加属性
person1.age = 23;
person2.age = 25;
//修改属性的值
person1.name = '张美丽';
console.log(person1.name);
person2.name = '李美丽';
console.log(person2.name);
1.3 Object属性的遍历方式
1.3.1 for...in
默认情况下,我们添加到对象上的属性都是可枚举的,这样的话我们就可以使用for-in循环遍历它们。
1.3.2 Object.keys(obj)
参数:要返回其枚举自身属性的对象
返回值:一个表示给定对象的所有可枚举属性的字符串数组
| Object.keys(person) // ["name", "age", "address","getName"] |
|---|
1.3.3 Object.getOwnPropertyNames()方法
该方法返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性但不包括Symbol值作为名称的属性)组成的数组。
| Object.getOwnPropertyNames(obj) |
|---|
-
参数:一个对象,其自身的可枚举和不可枚举属性的名称被返回。
-
返回值:在给定对象上找到的自身属性对应的字符串数组。
1.4 检查属性是否存在
由于对象的属性可以被随时随地被修改或删除,因此有时候我们需要检查对象的某个属性是否存在。使用下面的方式检查是不可靠的,那么通过in可以判断对象是否有这个属性。
1.5 删除属性
我们可以随时给对象添加属性,也可以随时地删除属性。有的人可能会使用null值赋值给属性,这样并不能删除属性,仅仅是改变了属性的值。我们需要使用delete操作符将属性从对象中完全删除。
//删除属性
obj.name = undefined;
其name、say属性仍存在obj对象中,怎样才能在obj中移除name属性呢?
delete obj.name;