对象介绍:
<script>
// 1、对象是什么:对象是一种复杂数据类型
// 2、对象作用:以键值对方式存储多个数据
// 3、对象和数字异同点
// 相同点:都是复杂数据类型,都可以存储多个数据
// 不同点:存储方式不同
// 数组:有序存储
// 对象:无序存储(键值对)
// 需求:存储一个人的信息(姓名,年龄,性别)
// 1、使用基本数据类型
let name = '班长';
let age = 18;
let sex = '男';
// 好处:阅读性高
// 弊端:rong冗余
// 2、使用复杂数据类型-数组
let arr = ['班长',19,'男']
console.log(arr);
// 好处:一个变量储存多个数据
// 弊端:阅读性不高
// 3、使用对象
let obj = { name:'班长',age:45,sex:'男'}
console.log(obj);
</script>
对象语法:
</head>
<!-- 1、声明对象
let 对象名 = {
属性名:属性值,
属性名:属性值,
}
2、取值语法
对象名.属性名 -->
<script>
let obj = {
name:'langs',
age:18,
gfs:['大白','小明','大黄'],
sayHi:function(){
console.log(111);
},
}
console.log(obj);
console.log(obj.name);
console.log(obj.age);
console.log(obj.gfs);
console.log(obj.gfs[2]);
console.log(obj.sayHi);
console.log(obj.sayHi());
</script>
对象中的属性值是什么数据类型,取出来的时候就可以使用这个类型的所有语法
对象中的属性值是 数组,则可以:对象名.属性名[下标]
对象中的属性值是 函数,则可以:对象名.属性名()
对象操作(增删改查):
<script>
let obj = {
name:'langs',
age:19,
sex:'男'
}
// 1、查询语法(属性名存在,获取属性值;属性名不存在,获取underfined)
// 点语法 对象名.属性名
// []语法 对象名['属性名']
// 点语法 对象名.属性名
console.log(obj.name); // langs
console.log(obj.age); // 19
console.log(obj.sex); // 男
console.log(obj.country); // underfined
// []语法 对象名['属性名']
console.log(obj['sex']); // 男
// 2、修改属性
// 对象名.属性名 = 值
// 对象名['属性名'] = 值
obj.name = '彭于晏';
obj['age'] = 20;
console.log(obj); //{name:'彭于晏',age:20,sex:'男'}
// 3、新增属性
// 如果对已经存在的属性赋值,则为修改
// 如果对不存在的属性赋值,则为新增
obj.hobby = '跑步';
console.log(obj); // {name:'彭于晏',age:20,sex:'男',hobby:'跑步'}
// 4、删除对象属性
// delete 对象名.属性名
delete obj.age
console.log(obj); // {name:'l彭于晏',sex:'男',hobby:'跑步'}
</script>
对象遍历语法:
<script>
// 遍历数组:for循环
// for(let i = 0; i < arr.length; i++){ arr[i] }
// 遍历对象:特殊的for-in循环(专门用于遍历对象)
// for(let key in 对象名){对象名[key]}
let obj = {
name:'langs',
age:19,
sex:'男',
hobby:'跑步'
}
for(let key in obj){
console.log(key); // 'name' 'age''sex' 'hobby'
console.log(obj[key]); // '班长' 'langs' '男' '跑步'
}
</script>