Js学习04--对象
1.如何辨别js中的对象
除了五种基本的数据类型,其他的都是对象。万物皆对象。
2.Js中对象的分类
1)内建对象
由ES标准定义的对象,在任何的ES实现中都可以使用。
eg:String、Number、Boolean、Function...
2)宿主对象
由JS运行环境提供的对象,现在主要指浏览器提供的对象。
eg:DOM对象、BOM对象。
3)自定义对象
自己创建的对象
3.如何创建对象
1)构造函数
构造函数是专门用来创建对象的函数。
使用new关键字调用的函数,可以被称为构造函数。
格式: var obj = new Object();
2)定义
在对象中保存的值称为属性。
向对象添加属性:对象.属性名=属性值;
读取对象中的属性:对象.属性名(如果读取对象中没有的属性,不会报错,会返回undefined)
修改对象的属性:对象.属性名 = 新值;
删除对象的属性:delete 对象.属性名;
4.属性名
如果使用特殊的属性名,不能采用.来操作,需要使用另一种方式。
语法:对象["属性名"] = 属性值;(读取时也要用该方法)
eg:obj["666"] = 888;
5.基本类型和引用类型在堆栈中的表示
1)基本数据类型:String、Number、Boolean、Null、Undefined
2)引用数据类型:Object
3)区别
a. JS中的变量都是保存在栈内存中的,基本数据类型的值直接在栈内存中存储,值与值之间是独立存在,修改一个变量不会影响其他的变量。
b.对象是保存在堆内存中的,每创建一个新的对象,就会在堆内存中开辟一个新的空间,而变量保存的是对象的内存地址(对象的引用),如果两个对象保存的是同一个对象引用,当一个通过一个变量修改属性时,另一个也会受到影响。
4)ps:如果比较两个基本数据类型的值时,就是比较值。
如果比较两个引用数据类型的值时,就是比较对象的内存地址。
6.对象字面量
使用对象字面量,可以在创建对象时,直接指定对象中的属性。
语法:var 对象 = {属性名:属性值,属性名:属性值...};(属性名可以加“”也可以不加,建议不加,如果属性名特殊,则要加)