var colors = ['red','blue','yellow']; 
alert(colors.toString()); //red,blue,yellow 
alert(colors.valueOf()); //red,blue,yellow 
alert(colors); //red,blue,yellow 
我们首先显式地调用了toString()和valueOf()方法,以便返回数组的字符串表示,每个值的字符串表示拼接成了一个字符串,中间以逗号分隔。最后一行代码直接将数组传递给了alert()。由于alert()要接收字符串参数,所有它会在后台调用toString()方法,由此会得到与直接调用toString()方法相同的结果。
另外,toLocaleString()方法经常也会返回与toString()和valueOf()方法相同的值,但也不总是如此。当调用数组的toLocaleString()方法时,它也会创建一个数组值的以逗号分隔的字符串。而与前两个方法唯一的不同之处在于,这一次为了取得每一项的值,调用的是每一项的toLocaleString()方法,而不是toString()方法。例如:
复制代码 代码如下:
 
var person1 = { 
toLocaleString : function(){ 
return "person1 : toLocaleString"; 
}, 
toString : function(){ 
return "person1 : toString"; 
} 
}; 
var person2 = { 
toLocaleString : function(){ 
return "person2 : toLocaleString"; 
}, 
toString : function(){ 
return "person2 : toString"; 
} 
}; 
var people = [person1,person2]; 
alert(people); //person1 : toString,person2 : toString 
alert(people.toString()); //person1 : toString,person2 : toString 
alert(people.toLocaleString()); //person1 : toLocaleString,person2 : toLocaleString 
数组继承的toLocaleString()、toString()和valueOf()方法,在默认情况下都会以逗号分隔的字符串的形式返回数组项。而如果使用join()方法,则可以使用不同的分隔符来构建这个字符串。
复制代码 代码如下:
 
var colors = ['red','blue','yellow']; 
alert(colors.join(',')); //red,blue,yellow 
alert(colors.join('||')); //red||blue||yellow 
注意:如果数组中的某一项的值是null或者undefined,那么该值在join()、toString()、toLocaleString()和valueOf()方法返回的结果中以空字符串表示。
栈方法
JavScript数组也提供了一种让数组的行为类似于其他数据结构的方法。具体来说,数组可以表现得就像栈一样,后者是一种可以限制插入和删除项的数据结构。栈是一种后进先出后进先出的数据结构。而栈中项的插入(叫做推入)和移除(叫做弹出),只发生在一个位置——栈的顶部。JavaScript提供了push()和pop()方法,以便实现类似的栈行为。
push()方法可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。而pop()方法则从数组末尾移除最后一项,减少数组的length值,然后返回移除的项。
复制代码 代码如下:
 
var colors = new Array(); //创建一个数组 
var count = colors.push('red','blue'); //推入两项 
alert(count); //2 
count = colors.push('yellow'); //再推入一项 
alert(count); //3 
var item = colors.pop(); //取得最后一项 
alert(item); //yellow 
alert(colors.length); //2 
队列方法
队列数据结构的访问规则是先进先出。队列在列表的末端添加项,从列表的前端移除项。由于push()是向数组末端添加项的方法,因此要模拟队列只需一个从数组前端取得项的方法。实现这一操作的数组方法就是shift(),它能够移除数组中的第一个项并返回该项,同时将数组长度减1。结合使用shift()和push()方法,可以像使用队列一样使用数组:
复制代码 代码如下:
 
var colors = new Array(); //创建一个数组 
var count = colors.push('red','blue'); //推入两项 
alert(count); //2 
count = colors.push('yellow'); //再推入一项 
alert(count); //3 
var item = colors.shift(); //取得第一项 
alert(item); //red 
alert(colors.length); //2 
JavaScript还为数组提供了一个unshift()方法。顾名思义,unshift()与shift()的用途相反:它能在数组前端添加任意个项并返回新数组的长度。因此,同时使用unshift()和pop()方法,可以从反方向来模拟队列,即在数组的前端添加项,从数组的末端移除项,例如:
复制代码 代码如下:
