javascript 引用类型

1  Object 类型

var person = new Object() ; person.name = "summer"; 和 var person = {name:'summer'};是等价的。

2  Array 类型

(1)var colors = new Array(); 和 var colors = Array();和var colors = []; 是等价的。

(2)数组中的length 属性不仅是只读的,即通过设置这个属性,可以从数组的末尾移除项或添加新项。

实例1:

var colors = ['red' , 'blue' , 'green'];

colors.length = 2;

alert(colors[2]); //undefined

实例2:

var colors = ['red' , 'blue' , 'green'];

colors.length = 4;

alert(colors[3]); //undefined,但是数组已经增加
colors[colors.length] = 'black';//数组上再加一个

实例3:

var colors = ['red' , 'blue' , 'green'];

colors[99] = 'black';

alert(colors.length); //100

(3)检测数组:value instanceof Array  和 Array.isArray(value)  

(4)装换方法:toLocalString()、toString()、valueOf()以及join

实例1:

var colors = ['red' , 'blue' , 'green'];

alert(colors.join("||")); //red||green||blue

(5)栈方法(LIFO)后进先出:colors.push("red","green"......)(加在后面)和colors.pop()(从后面开始删除)

(6)队列方法(FIFO)先进先出:colors.unshift("red","green"......)(加在前面)和colors.unshift()(从前面开始删除)

(7)重排方法:reverse()和sort()

实例1:

var values = [1,2,3,4,5]'

values.reverse();

alert(values);//5,4,3,2,1

实例2:

var values = [0,1,5,10,15]'

values.sort();

alert(values);//0,1,10,15,5  由于sort没有传递参数,是按照字符串来排列

 

实例2:

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

(8)操作方法:concat()、slice()、splice()

concat():基于当前数组中的所有项创建一个新数组

 实例1:

var colors = ['red','green','blue'];

var colors2 = colors.concat('yellow',['black','brown']);

alert(colors);//red,green,blue

alert(colors2);//red,green,blue,yellow,black,brown

 

slice():基于当前数组中一个或多个项创建一个新数组

 实例2:

var colors = ['red','green','blue','yellow','purple'];

var colors2 = colors.slice(1);//一个参数,从1开始到结束 

var colors3 = colors.slice(1,4);//两个参数,从1到4,不包括结束项

alert(colors2);//green,blue,yellow,purple

alert(colors3);//green,blue,yellow

splice():删除、插入、替换(splice() 方法始终都会返回一个数组,该数组包含从原始数组中删除的项,如果没有删除项,返回空数组)

删除:可以删除任意数量的项,只需指定2个参数:要删除的第一项的位置和要删除的项数,如splice(0,2)会删除数组中的前两项

插入:可以向指定位置插入任意数量的项,只需要提供3个参数:起始位置、0(要删除的项数)和要插入的项。如splice(2,0,"red","green","yellow".....)会从当前数组的位置2开始插入后面的字符串

替换:可以向指定位置 插入任意数量,而且同时删除任意数量的项,只需指定3个参数:起始位置、要删除的项数和要插入的任意数据的项。插入的项数不必与删除的项数相等。如splice(2,1,"red","green"....)

 实例3:

var colors = ['red','green','blue'];

var removed= colors.splice(0,1);

alert(colors );//green,blue

alert(removed );//red

removed= colors.splice(1,0,"yellow","orange");

alert(colors );//green,blue,yellow,orange

alert(removed );//空

removed= colors.splice(1,1,"red","purple");

alert(colors );//green,red,purple,orange,blue

alert(removed );//空

(9)位置方法:indexOf() 和 lastIndexOf(),这两个方法都接收两个参数,要查找的项和(可选的)表示查找起点位置的索引。indexOf()从数组的开头开始向后查找,lastIndexOf() 则从数组的末尾开始向前查找。返回查找项在数组中的位置,没有则返回-1,用的是全等操作符,即严格相等。

(10)迭代方法:every()、filter()、forEach()、map()、some()

(11)归并方法:reduce()和reduceRight()

 

posted on 2014-12-04 17:34  summerzi  阅读(195)  评论(0编辑  收藏  举报

导航