定义
一种复杂数据类型,是无序的(不保留键的插入顺序),以键值对({key:value})形式存放的数据集合
对象的创建
(1)字面量创建
var 对象名={ }
(2)内部构造函数创建
var 对象名=new Object()
对象的增删改查
(1)点操作 (属性名也成为键名)
——增:对象名.属性名=值
——删:delete 对象名.属性名
——改(同增):对象名.属性名=值
——查:对象名.属性名
若属性名存在则返回对应值,否则为undefined
(2)数组关联语法
——增:对象名['属性名']=值
——删:delete 对象名['属性名']
——改(同增):对象名['属性名']=值
——查:对象名['属性名']
若属性名存在则返回对应值,否则为undefined
// 创建一个学生对象 var student=new Object() //或 var student={} console.log(student) //{} // 学生对象的属性有姓名、学号、性别、年龄等等 // 添加姓名和年龄的属性: student.name='张三' student.age='10' console.log(student) //{name: '张三', age: '10'} // 删除年龄属性 delete student['age'] //或 delete student.age console.log(student) //{name: '张三'} //修改 如果对象中以及有name属性,那么此点语法就是修改属性值,如没有name属性,那么就是添加 student.name='lisi' console.log(student) //{name: 'lisi'} //查 console.log(student.name,student.sex,student['name']) //lisi undefined lisi
区别:
当对象名不符合变量命名规范,只能用数组关联语法
当涉及变量使用,也只能用数组关联语法,如:
var obj={name:'张三',age:15}
vae x='name'
console.log(obj[x])——>[]内不能加引号,加引号是字符串不是变量,此时x是变量
对象的遍历
语法: for(var 变量 in 对象名){ }
in关键字:可以用来判断对象中是否存在某属性,若存在返回true,否则返回false
语法:属性名 in 对象名
对象的静态方法
Object.keys(对象名)——获取对象的属性名,以数组的形式返回
Object.values(对象名)——获取对象的属性值,以数组的形式返回