1.对象作用
一个变量存储多个数据, 阅读性高
2.对象语法
2.1 声明对象语法
let 对象名 = {
属性名: 属性值,
方法名: 函数
}
2.2 对象取值:
点语法: 对象名.属性名 ;字符串语法: 对象名['属性名']
(1)如果属性名存在,则是获取属性值
(2)如果属性名不存在,则是获取undefined
2.3 对象赋值: 对象名.属性名 = 值
(1)如果属性名存在,则是 ‘修改’ 属性值
(2)如果属性名不存在,则是 ‘新增’ 属性
3.对象遍历
3.1数组遍历固定for循环 : for(let i = 0;i<arr.length;i++){ arr[i] }
3.2对象遍历for-in循环 : for(let key in 对象名){ 对象名[key] }
◆注意点:对象的遍历只能使用字符串语法取值
4.环境对象this
谁调用这个函数,this就指向谁
//1.对象声明
let person = {
name: '前端小白兔',
age: 18,
gender: '女',
hobby: ['学习', '敲代码', '拧魔方'],
sayHi: function () {
console.log(this)//Object
document.write(`大家好,我的名字叫:${this.name}`)
}
}
//2.调用对象方法
person.sayHi()
//3.修改对象的属性值
person.age = 20
//4.获取对象的属性值
person.name
//5.新增对象的属性
person.job = 'Engineer'
//6.对象的循环,for-in
for (let key in person) {
console.log(key) //key是变量,存储属性名字符串 'name' 'age' 'gender' 'hobby','sayHi'
console.log(person.key) //undefined
console.log(person['key']) //undefined
console.log(person[key]) // 正确语法
}
5.对象与数组的异同点
相同点: 都是引用类型,都可以存储多个数据
不同点: 存储方式不同
数组: 有序存储 (下标从0开始递增)
对象: 无序存储 (属性名和属性值一一对应:键值对)