1、var o = {prop: 1};
var o = {‘prop’: 1};
var o = {“prop”: 1};
上面三个定义的内容是完全相同的,通常属性名不加引号,但不符合js命名规则的必须添加引号;
2、在一般性程序设计语言中,通常存在两种不同的数组形式:
1)一般性(索引型/枚举型)数组:通常以数字为键值;
2)关联型数组/哈希表:通常以字符串为键值;
在JavaScript中,我们会用数组来表示索引型数组 ,用对象表示关联型数组。因此,如果我们想在JavaScript中使用哈希表,就必须要用到对象。
3、【访问对象属性】
1)中括号 eg:hh[‘aa’]
如果要访问的属性名不确定,必须使用中括号访问,它允许我们在运行时通过变量来实现相关属性的动态存取;
2)点号 eg :hh.aa
一般适用
3)【this】当我们处于某个对象方法内部时,可以this.属性名调用
4、【构造器函数 new 】 传参
1) 我们可以通过构造器函数 constructor function,的方式创建对象。
2)依照惯例,我们将构造器函数的首字母大写,以便区分于其他一般函数。
3)不要忽略 new操作符,是的,在JavaScript中它叫操作符。忽略new时,内部的this调用的是全局对象,且此时所有的属性设置都是针对全局对象的
4)当我们创建对象时,同时也赋予了该对象一种特殊的属性—-构造器属性(constructor property)。该属性实际上是一个 指向用于创建该对象的构造器函数的引用。
5、【全局对象】
1)真相只有一个:程序所在的宿主环境一般都会为其提供一个全局对象,而所谓的全局变量其实不过是该对象的属性罢了。
6、【instanceof】:测试一个对象是不是由某个特定的构造器函数所创建的。测试时函数名后无需加括号
7、【传递对象】
我们在引用上做的任何改动,都会影响他所引用的原对象
var oo = {h:1};
var cc = oo;
cc.h;
>>>1
cc.h = 2222;
oo.h;
>>> 2222
8、【内建对象】
1)数据封装类对象:Object,Array,Boolean,Number,String
代表着JavaScript中不同的数据类型,并有各自不同的typeof返回值,undefined,null状态
2)工具类对象:Math ,Date,RegExp
3)错误类对象:包括一般性错误对象以及其他各种更特殊的错误类对象
【Object】
1)object是JavaScript中所有对象的父级对象
var o = {};
var o = new Object();是等价的
2)即便是所谓的空对象,也不是完全无用的,还是包含了一些属性和方法:返回构造器函数的构造器属性、toString()、返回对象单值描述信息 的valueOf()一般返回的就是对象本身
【Array】
1)Array()是一个用来构建数组的内建构造器函数。
var a = new Array();
var a = [];是等效的
2)一种异常情况,var aa = new Array(5); 5会被认为是数组长度
3)数组也是对象,但有其特殊之处:属性名从0开始递增,并自动生成数值;拥有记录元素数量的length属性;是在Object的基础上扩展额外的内建方法
4)值得关注的数组方法
push():在数组末端添加一个新元素,push(new),返回改变后数组长度;
pop():移除数组最后一个元素,返回被移除的元素;
sort():排序,返回排序后数组;
join():返回一个由目标数组中所有元素值连接而成的字符串,可在括号内设置连接值;
slice():在不改变目标数组的前提下返回其中某个片段,该片段的首尾索引位置有slice(index1,index2);
splice():会修改目标数组,它移除并返回指定切片,可指定新元素填补被切除的空缺,splice(index1,index2,new,new,,,);