3 Object 对象
广义的理解: 一切皆对象,数组、函数都是对象的一种。
狭义的理解: Object 数据类型,是对象类型中的一种,与Array、Function是等价的。
3.1 什么是 Object
1. Object 是值的无序集合。
2. Object 由多个属性组成, 每个属性有属性名也有属性值,属性名一般用字符串表示,属性值可以是任意类型的数据
3. 如果某个属性的值是 function 类型的数据,可以称该属性为方法。
3.2 如何声明 Object 类型的对象
① 第一种 直接量方式
// 创建一个 空的 Object 对象
{};
// 创建对象的同时 设置其中的属性
{
'user-name': '小乐',
address: '上海',
user_age: 100,
getInfo: function() {
console.log('getInfo')
},
users: [100,200,300,400,500]
};
总结:
属性名应以字符串的形式给出,需要加引号,但是如果属性名满足标识符命名规范,可以省略引号。
② 使用 Object 函数
// 创建一个空的Object 对象
Object();
③ 使用 Object 构造函数
// 创建一个空的 Object 对象
new Object();
3.3 Object 对象属性的读写
① 语法
// 第一种方式 使用 . 语法
对象.属性名;
对象.属性名 = 值;
// 第二种方式 使用 [] 语法
对象['属性名'];
对象['属性名'] = 值;
总结:
- 如果读取对象中不存在的属性,会自动得到 undefined。
- 如果给对象中不存在的属性赋值,会为对象添加一个属性。
② 什么情况下必须使用 [] 语法读写属性
1. 属性名不符合标识符规范
2. 使用变量表示属性名
3.4 遍历Object对象的属性
for (var prop in 对象) {
prop; // 获取的是属性名
对象[prop]; // 获取属性的值
}
3.5 删除对象中的属性
使用 delete 运算符,该运算符是一元运算符,具有副作用。
delete 对象.属性名;
delete 对象['属性名'];
3.6 判断对象中是否存在某个属性
使用 in 运算符,该运算符是二元运算符,左边的操作数是字符串形式的属性名,右边的操作数是对象; 该运算符组成的表达式的值是布尔值
'属性名' in 对象;