1:所有对象都具有toLocaleString()、toString()和valueOf()方法。其中,调用 数组的toString()方法会返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串,而 调用valueOf()返回的还是数组。实际上,为了创建这个字符串会调用数组每一项的toString()方 法。来看下面这个例子。
var colors = ["red", "blue", "green"];
console.log(colors);
console.log(colors.toString());
console.log(colors.toLocaleString());
console.log(colors.valueOf());
2:toLocaleString()方法经常也会返回与toString()和valueOf()方法相同的值,但也不总是如此。
var person1 = { //定义对象person1:
toLocaleString: function() { //而且还分别为每个对象定义了一个toString() 方法和一个toLocaleString()方法,这两个方法返回不同的值
return "Nikolaos";
},
toString: function() {
return "Nicholas";
}
};
var person2 = { //定义对象person2:
toLocaleString: function() {
return "Grigorios";
},
toString: function() {
return "Greg";
}
};
var people = [person1, person2];
alert(people); //Nicholas,Greg
alert(people.toString()); //Nicholas,Greg
alert(people.toLocaleString()); //Nikolaos,Grigorios
3:数组继承的toLocaleString()、toString()和valueOf()方法,在默认情况下都会以逗号分隔的字符串的形式返回数组项。而如果使用join()方法,则可以使用不同的分隔符来构建这个字符串。join()方法只接收一个参数,即用作分隔符的字符串,然后返回包含所有数组项的字符串。请看下面的例子:
var colors = ["red", "green", "blue"];
alert(colors.join(",")); //red,green,blue
alert(colors.join("||")); //red||green||blue
如果不给join()方法传入任何值,或者给它传入undefined,则使用逗号作为分隔 符。IE7 及更早版本会错误的使用字符串”undefined”作为分隔符。