2015-11-02-js
1.对象
创建方式有两种,一时通过new 后加object构造函数,二是用字面量法,
var box=new object();
var box={
name='bokeyuan';
};
访问对象:box.name/box['name'],方括号的优点是可以通过变量来访问对象,如果属性名中包含会导致语法错误的字符,或者属性名使用的是关键字或保留字,也可以使用方括号表示法。
例如box['first name'],属性名中是可以包含非字幕非数字的。
2.数组
length:如果将length之设置为比数组项数小时,会将后面的数据删除 ,再次访问时就回返回undefined;如果将length值设置成比数字项数大时,后添加的项会显示为undefined。
可以利用length值来给数组添加新项,arr[arr.length]='chenhua';arr[arr.length]='zhangqiang';
数组最多可以包含4294967295个项,如果想添加的项数超过这个上限,就会发生异常。而创建一个初始大小与这个上限值接近的数组,则可能导致运行时间超长的脚本错误。
检测数组:instanceof
if(value instanceof Array){ //.. }
instanceof操作符的问题在于,他加订单一的全局执行环境,如果网页中有多个框架,那实际上上就存在两个以上不同的全局执行环境,从而存在两个以上不同版本的array构造函数,如果从一个框架箱另一个框架传入一个数组,那么传入的数组与在第二个框架中原生创建的数组分别具有各自不同的构造函数。
3.转换方法
所有对象都具有toLocaleString(),toString(),和valueof()方法,
4.重排序方法
数组中存在两个可异质结用来重排序的方法:reverse()和sort()。
reverse()会直接反转数组想的顺序,
在默认情况下,sort()方法会按升序排列数组项,sort()会调用每个数组项的tostring()方法,然后比较得到的字符串,所以{会形成这样的情况:0,1,10,15,2}
比价函数接受两个参数,如果第一个参数应该位于第二个之前则返回一个负数,如果两个参数相等则返回0.如果第一个参数应该位于第二个之后则返回一个正数。