Object类型
使用点表示法和对象变量访问都可以,建议用点。
person.name = "zhang san" 等价于 person["name"]="zhang san"
Array 类型
var colors = new Array(); var colors = new Array(20); var colors = new Array("red","blue","green");
使用构造函数Array时 new也可以省略, var name = Array("zhang san");
或者直接用原始定义 var colors = ["red","blue","green"]; colors[0]获取;
colors.length不是只读的,即可以改变大小。colors.length为3的时候,设置colors.length=4,那么colors[3]=undefined;
若本来只有三个长度,设置colors[99]="wight",则colors.length长度为100;
如果数组中的某一项值是null或者undefined,那么该值在join(),toLocalString(),toString(),valueOf()方法返回结果中以空字符串表示。
栈方法表示数组
var colors = new Array();
var count = colors.push("red","green");
alert(count); //2
var item = colors.pop();
alert(item); //green
alert(count); //1
数组入栈用push,unshift,出栈用pop(),shift();
colors.shift(); //取得第一项,移除第一项
colors.unshift("red","green") //在数组前面增加两项
colors.push("red","green") //在数组后面增加两项
colors.pop(); //移除最后一项
经典判断类型用法 instanceof
if ( value instanceof Array){} //判断是不是数组;
数组排序
反转数组reverse
var values = [1,2,3,4,5,6,7,8,9];
values.reverse();
alert(values);//9 8 7 6 5 4 3 2 1
排序sort 按照从小到大的顺序排序
var values = [0,1,5,10,15];
values.sort();
alert(values); //0,1,10,15,5
原因:sort排序时是将每个值当成字符串进行排序,“10”比“5”在前;
解决方法:sort方法会接收一个比较函数,比较函数有两个参数,如果第一个参数要位于第二个之前,比较函数返回负数,反之返回正数。
function compare(value1, value2){
if(value1 < value2){ return -1;
}else if (value1 > value2){ return 1;
}else{return 0;}
var values = [0,1,5,10,15];
values.sort(compare);
alert(values); //0,1,5,10,15
//降序的compare
if(value1 < value2){ return 1;
}else if (value1 > value2){ return -1;
}else{return 0;}
//compare 里也可直接写减 只要得到的结果是正数,负数,0 就可以实现升序,降序排序。
function compare(value1,value2){