一.对象
基本的数据类型都是单一的值
对象的出现可以将数值汇总起来 即对象是一种复合型的数据
对象的分类
--内建对象
--宿主对象
--自定义的对象
创建对象
var obj= new Object();
--使用关键字new调用的函数是构造函数
构造函数是专门用来创建对象的函数
对象的增删改查
1.增 对象.属性名=属性值
2.删 delete 对象.属性名
3.改 对象.属性名=新值
4.查 对象.属性名 (若访问对象时,没有要找的属性名 不会报错,会返回Undefined)
二.属性名和属性值
1.属性名
--属性名不像标识符,可以随意定义(建议不要仍按照标识符的规范去命名)
--当属性名不规范时,需要以另一种方式创建和访问(对象["属性名"]=属性值 ;对象["属性名"]
--其实这种方式比 var obj=new Object()这种方式更佳灵活,因为方括号可以直接传递一个变量,这样变量值是多少就会读取哪个属性
--. [] new的优先级是最高的
2.属性值
--JS的属性值可以为任意值,包括对象
3.查找一个对象中是否含有一个属性
--语法:“属性名” in 对象
--在返回true,不在返回false
三.基本数据类型和引用数据类型的区分
--变量都存放在栈中 不同的值的存放位置
--基本数据类型的值直接存放在栈区,值与值之间相互独立的存在,修改一个变量不会影响其他变量的值
--对象保存在堆里,每创建一个新的对象都会在堆中开辟一块内存空间
--变量保存的时对象的内存地址(对象的引用)
--若两个变量保存的是同一个对象引用,则通过一个变量去修改属性时,另一个变量也会跟着改变
--若两个本存在联系的变量,其中一个变量赋值为null,此时这个对象的值为null,这两个变量之间的联系也就取消了。
--当比较两个基本数据类型的值的时候,比较的是值
--当比较引用数据类型的值时,比较的时两个对象的内存地址
四.对象字面量
--语法:var obj={};
--使用对象字面量创建对象时可以在{}中添加属性
--格式:var obj={属性名:属性值,属性名:属性值}
--对象字面量中的属性名可以加引号,也可以不加引号
--但当属性名为特殊格式时,则必须加引号
--最后一个名值对后不要再加逗号