「这是我参与11月更文挑战的第18天,活动详情查看:2021最后一次更文挑战」 。
一:对象介绍
1.对象是什么 :
对象是一种复杂数据类型
2.对象作用 :
以键值对方式存储多个数据
3.对象与数组异同点
相同点:都是复杂数据类型,都可以存储多个数据
不同点: 存储方式不同
数组: 有序存储
对象: 无序存储(键值对)
//需求: 存储一个人的信息 (姓名,年龄,性别)
//1.使用基本数据类型来存储
//(1)弊端:冗余,维护不便
//(2)好处: 阅读性高
let name = '班长'
let age = 38
let sex = '男'
//2.使用复杂数据类型:数组
//(1)好处: 一个变量存储多个数据
//(2)弊端: 阅读性不高
let arr = ['班长',38,'男']
console.log(arr)
//3.使用对象 : 存多个 + 阅读性高
let obj = { name:'班长',age:38,sex:'男' }
console.log(obj)
二:对象语法
1.声明对象
let 对象名 = {
属性名:属性值,
属性名:属性值,
}
2.取值语法:对象名.属性名
3.细节:
对象中的属性值是什么数据类型, 取出来的时候就可以使用这个类型的所有语法
> 如,对象的属性值是 数组, 则可以: 对象名.属性名[下标]
>如,对象的属性值是 函数, 则可以: 对象名.属性名()
三.对象操作
1.查询对象特点
1.1 如果属性名存在,则获取属性值
1.2 如果属性名不存在,则获取undefined
2.查询对象属性两种语法
点语法 obj.属性名
字符串语法 obj['属性名'] obj[ 变量名 ]
//1.调用对象方法
let res = obj.eat('榴莲')
//2.获取对象属性
//2.1 点语法 对象名.属性名
console.log( obj.name )
console.log( obj.age )
console.log( obj.sex )
console.log( obj.aaa )//undefined
//2.2 字符串语法 对象名[]
/* 注意点: [] 里面一定是字符串, 如果写变量名,也是取这个变量中存储的字符串 */
let sex = 'age'
console.log( obj['name'])
console.log( obj['age'])
// sex是变量名,取这个变量中存储的字符串 obj[ 'age' ]
console.log( obj[ sex ])
四:对象操作:新增与修改
1.查询属性
常用:点语法 对象名.属性名
特殊场景:字符串语法 对姓名['属性名']
2.修改属性
对象名.属性名 = 值
对象名['属性名'] = 值
3.新增属性
(1)如果已经存在的属性赋值,则是修改
(2)如果不存在的属性赋值,则是新增
4.删除对象属性
delete 对象性.属性名
2.遍历对象
特殊的for-in循环 (专用于遍历对象)
for(let key in 对象名){ 对象名[key] }