对象
- 对象是JS中的一种复合型数据类型
他相当于一个容器,在对象中存储各种不同数据类型 - 对象中可以存储多个数据类型的数据,对象中存储的数据,我们称之为属性
- 向对象中添加属性:
对象.属性名=属性值 - 读取对象中的属性名: 对象.属性名
读取对象中没有的属性,返回undefined
属性名
- 通常属性名就是一个字符串,所以属性名无任何要求,可以是任何值
但有时过于特殊,不能直接使用,需要使用[]来设置,虽然如此但尽量要按照规范起名
使用[]去操作属性时,可以使用变量,这时候变量不要加引号
三种方法属性值
对象的属性值可以是任何数据类型,也可以时一个对象
使用typeof检查一个对象时,会返回object - in运算符
用来检查对象中是否含有某个属性
语法: 属性名 in obj(属性)
如果有返回true,没有返回false
对象字面量
- 可以直接用{}来创建对象
- 使用{}所创建的对象,可以直接向对象中添加属性
- 语法
{
属性名:属性值,
[属性名]:属性值,
}
let obj = {
name: '桃良',
age: 21,
["abcd"]: '哈哈',
h2: {
name: '桃木',
["asd"]: 123
}
}
console.log(obj)
枚举
枚举属性,将对象中所有属性全部获取
for-in语句
-
语法:
for (let propName in 对象){
语句…
} -
for-in的循环会执行多次,有几个属性就会执行几次
每次执行时,都会将一个属性名赋值给我们定义的变量
-
注意:并不是所有属性不可枚举
可变类型
- 原始值都属于不可变类型,一旦创建不可修改
- 在内存中不会创建重复的原始值
- 对象属于可变类型
- 对象创建完成后,可以任意添加修改删除对象中的属性
- 注意:
如果有两个变量同时指向一个对象
通过一个变量修改对象时,对另一个变量也会产生影响