- 理(lǐ)解(jiě)js中(zhōng)的(de)对(duì)象(xiàng)
首先我们要知道js中的数据类型:
基本数据类型:字符串(string)、数值类型(number)、布尔值(Boolean)、空值(null)、未定义(undefined)
引用数据类型: object
Js对象就是一种复合的数据类型,js对象是由一个或多个数据类型构成。在js中有这样一个说法:所有事务都是对象,
用我们生活去理解对象:我们所看到的都是对象;
例如:水杯是一个对象;汽车是一个对象;电脑是一个对象;等等;
而对象一般都会有它自身的属性和方法的;
例如:水杯的大小是它自身的属性;汽车的颜色是它自身的属性,怎么启动是它的方法;
。对象的几种类型:
- 内建对象:由ES标准中定义的对象,在任何ES的实现中都可以使用
例如:Math String Number Boolean Function Object;
2.宿主对象: - 由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象(我理解为:由浏览器创建,由我们来调用的对象)
- 比如:BOM(浏览器对象模型) DOM(文档对象模型)
例如 我们常用的console.log() 就是DOM 中的对象
3.自定义对象:- 由咱们开发人员自己定义的对象;
。创建对象:
- 使用构造函数创建对象:var obj=new Object();
使用new关键字调用的函数,是构造函数constructor;
构造函数是专门用来创建对象的函数。
属性:在对象中保存的值称为属性;(属性的添加、读取、删除、 查找)
(1).向对象添加属性的语法:① 对象.属性名=属性值;② 对象[“属性名”]=属性值;
(2).读取对象属性的语法: ①对象.属性名 ②对象["属性名"]
- 注意: 在我们读对象的属性时,如果对象没有我们要的属性,则不会报错而是放回undefined;
对象的属性值可以是任意数据类型
(3).对象删除属性的方法:① delete 对象.属性; ② delete 对象[属性];
(4).对象属性查找的语法:“属性名” in 对象;(如果对象中含有该属性则返回true;否则返回false;
2.字面量创建对象:var obj={};
属性:使用字面量创建对象时,可以直接指定对象中的属性;
- 指定属性的语法:{属性名1:属性值1,属性名2:属性值2,…}
对象字面量的属性名可以加引号,也可以不加,建议不加
如果要使用一些特殊的属性名,则必须加上引号
什么是特殊的属性名呢?
特殊的属性名就是:不符合js中标识符的属性名;
标识符:
- 标识符中可以含有字母、“_”下滑线、数字和美元符号($);
- 标识符不能以数字开头。
- 标识符不能使用ES中的关键子和保留字。
(2) 属性名与属性值是一组键值对结构,
键与值之间用":"冒号连接,对个键值对之间使用","逗号隔开
如果一个属性之后没有其他的属性了,就不要写","逗号
注意:因为对象的属性值可以是任何数据类型,所以对象的属性值也可以是对象;
若:对象1的属性值是多个对象,则让属性值等于由这多个对象组成的数组就可以了
即:构造函数的方法创建的对象:
字面量创建函数
var my={
name:"one"
}
var you={
name:"three"
}
var our={
empty:[my,you] //对象our中包含对象my和对象you;
}
以上的都属于自定义的对象