对象:是一种复杂数据类型
对象作用 :以键值对方式存储多个数据
对象与数组异同点
相同点:都是复杂数据类型,都可以存储多个数据
不同点: 存储方式不同
数组: 有序存储
对象: 无序存储(键值对)
1.声明对象
let 对象名 = {
属性名:属性值,
属性名:属性值, }
2.取值语法
对象名.属性名
3.细节: 对象中的属性值是什么数据类型, 取出来的时候就可以使用这个类型的所有语法
如,对象的属性值是 数组, 则可以: 对象名.属性名[下标]
如,对象的属性值是 函数, 则可以: 对象名.属性名()
注意点
对象声明使用 {} , 数组声明使用 []
对象中多个属性之间使用什么符号隔开?
对象中的函数通常叫对象方法
-
对象属性特点
(1)属性名 存在 , 则是获取 属性值
(2)属性名 不存在 , 则是获取 undefined
2.对象取值有两种语法
2.1 点语法: 对象名.属性名
2.2 []语法 : 对象名[ '属性名' ] 对象名[ 变量名 ]
查询属性
1. 点语法 对象名.属性名
[]语法 obj['属性名'] obj[ 变量名 ]
总结: 需要解析变量的时候使用"[]语法", 不需要就用 "点语法"
2.修改属性 :对象名.属性名 = 值
3.新增属性 : 对象名.属性名 = 值
(1)如果对象属性名存在,则是修改属性值
(2)如果对象属性名不存在,则是新增属性
4.删除属性(了解) : delete 对象名.属性名
5.遍历对象: 查询对象所有的属性
5.1 数组遍历:固定的for循环 for(let i = 0;i<arr.length;i++){ arr[i] }
5.2 对象遍历:固定的for-in循环 for(let key in 对象名 ){ 对象名[ key ] }
js数据类型有很多种,分为两大类
** 1.值类型(简单数据类型string boolean number undefined null) :
栈中存储数据,赋值拷贝的是数据,修改拷贝后的数据对原数据没有影响.
2.引用类型(复杂数据类型 array function object) :
栈中存储地址,堆中存储数据。赋值拷贝的是地址,修改拷贝后的数据对原数据有影响**