知识点:Object
所有事物都是对象
JavaScript 提供多个内建对象,比如 String、Date、Array 等等。 对象只是带有属性和方法的特殊数据类型。
对象只是一种特殊的数据。对象拥有属性和方法。
比如手机是一个对象,手机有CPU、摄像头、扬声器、显示器
手机可以发短信、打电话、听音乐…
那么我们可以把手机有CPU、摄像头、扬声器、显示器这些东西称为属性
手机可以手机可以发短信、打电话、听音乐…称为方法
对象属于一种复合的数据类型,在对象中可以存储多个不同数据类型的属性
对象的分类:
1.内建对象
1.由ES标准中定义的对象,在任何ES的实现中都可以使用
例如:Math String Number Boolean Function Object…
2.宿主对象
- 由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象
- 比如:BOM(浏览器对象模型) DOM(文档对象模型)
例如 我们常用的console.log() 就是DOM 中的对象
3.自定义对象:由咱们开发人员自己定义的对象
创建对象:
使用new关键字创建一个Object对象
var obj=new Object();//创建Object对象
console.log(obj);
console.log(typeof obj);//typeof检查数据类型 object
给对象添加属性:
在对象中保存的值称为属性:
向对象添加属性的语法: ①对象.属性名=属性值 ② 对象["属性名"]=属性值
读取对象属性的语法: ①对象.属性名 ②对象["属性名"]
- 注意:如果对象中没有的属性,不会报错而是返回undefined
obj["name"]="小明";
obj.age=20;
访问对象的属性:
语法:对象.要访问的属性
console.log(obj["name"]);//小明
console.log(obj.name);//小明
console.log(obj["age"]);//20
console.log(obj.age);//20
console.log(obj);// {name: "小明", age: 20}
修改对象的属性值:
obj.age=22;
删除对象的属性:
delete obj.name;
console.log(obj);// {age: 20}
创建对象并添加属性和属性值:
var worker=new Object();
worker.name="小明";
worker.age=23;
worker.adress="九王庙兴业路八号";
给属性添加对象:
var boss=new Object();
boss.name="马云";
boss.age=40;
boss.staff=worker;
console.log(boss);//输出对象的属性和属性值
console.log(boss.name);//马云
console.log(boss.staff.name);//小明
in运算符:
通过该运算符检查一个对象中是否含有指定的属性
如果含有则返回true,如果没有则返回false
语法 :"属性名" in 对象
console.log("adress" in boss);//false
对象的字面量:
var obj=new Object();//创建对象
var obj={};//使用对象字面量来创建对象
使用对象字面量,可以在创建对象时,直接指定对象中的属性
语法:{属性名1:属性值1,属性名2:属性值2,...}
对象字面量的属性名可以加引号,也可以不加,建议不加
如果要使用一些特殊的属性名,则必须加上引号
属性名与属性值是一组键值对结构,
键与值之间用":"冒号连接,对个键值对之间使用","逗号隔开
如果一个属性之后没有其他的属性了,就不要写","逗号
var obj={//使用字面量创建对象
name:"马化腾",
age:58,
"123":"helloworld" //特殊的属性名,必须加上引号
}
console.log(obj.name);//马化腾
console.log(obj["age"]);//58
var boss={
name:"马云",
age:40,
emp:{
name:"小王",
age:23,
tel:"13509667867"
}
}
console.log(boss.emp.tel);//13509667867