一、toLocaleString()、toString()和valueOf()方法
在ECMAScript中,所有工具都具有toLocaleString()、toString()和valueOf()方法,数组也从Object类型继续这三个方法。
valueOf():调用数组的valueOf()方法返回的还是数组。toString():调用数组的toString()方法会返回由数组中每个值的字符串形式拼接而成的一个以逗号分割的字符串。为了创建这个字符串会调用数组每一项的toString()方法。toLocaleString():调用数组的toLocaleString()方法也会创建一个数组值的以逗号分割的字符串,为了取得每一项的值,调用的是每一项的toLocaleString()方法。var colors = [\"大众red\公众, \"大众blue\"大众, \"大众green\"大众];alert(colors.toString()); //red,blue,greenalert(colors.toLocalString()); //red,blue,greenalert(colors.valueOf()); //red,blue,greenalert(colors); //red,blue,green
由于alert()要接管字符串参数,以是它会在后台调用toString()方法,由此会得到与直接调用toString()方法相同的结果。
var person1 = {toLocaleString: function(){return \公众Nikolaos\公众;},toString: function(){return \"大众Nicholas\公众;}};var person2 = {toLocaleString: function(){return \公众Grigorios\"大众;},toString: function(){return \公众Greg\公众;}};var people = [people1, people2];alert(people); //Nicholas,Gregalert(people.toString()); //Nicholas,Gregalert(people.toLocaleString()); //Nikolaos,Grigorios
二、join()方法
利用数组的toLocaleString()、toString()方法,在默认情形下会以逗号分隔的字符串的形式返回数组项。而如果利用join()方法,则可以利用不同的分隔符来构建这个字符串。join()方法只吸收一个参数,即用作分隔符的字符串,然后返回包含所有数组项的字符串。如果不给join()方法传入任何值,或者给它传入undefined,则利用逗号作为分隔符。
var colors = [\"大众red\"大众, \"大众blue\"大众, \公众green\"大众];alert(colors.join(\公众||\公众)); //red||blue||green
如果数组中的某一项的值是null或者undefined,那么该值在join()、toLocaleString()、toString()方法返回的结果中以空字符串表示。