如前所述,所有对象都具有toLocaleString()、toString()和valueOf()方法。其中,调用数组的toString()和valueOf()方法会返回相同的值,即由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串。实际上,为了创建这个字符串会调用数组每一项的toString()方法。来看下面这个例子:
var colors=["red","blue","green"]; //创建一个包含3个字符串的数组
alert(colors.toString()); //red,blue,green
alert(colors.valueOf()); //red,blue,green
alert(colors); //red,blue,green
南昌网站建设公司工程师捍示,在这里,我们首先显式地调用了toString()和valueOf()方法,以便返回数组的字符串表示,每个值的字符串表示拼接成了一个字符串,中间以逗号分隔。最后一行代码直接将数组传递给了alert()。由于alert()要接收字符串参数,所以它会在后台调用toString()方法,由此会得到与直接调用toString()方法相同的结果。
另外,toLocaleString()方法经常也会返回与toString()和valueOf()方法相同的值,但也不总是如此。当调用数组的toLocaleString()方法时,它也会创建一个数组值的以逗号分隔的字符串。而与前两个方法唯一的不同之处在于,这一次为了取得每一项的值,调用的是每一项的toLocaleString()方法,而不是tostring()方法。请看下面这个例子:
var personl={
toLocaleString : function () {
return"Nikolaos";
},
toString : function() {
return "Nicholas";
}
};
rar person2=(
toLoreturnri Grigoriostion(){
return "Grigorios";
),
toString : function() {
return"Greg";
}
};
var people= [personl, person2];
alert (people); //Nicholas, Greg
alert (people.toString()); //Nicholas, Greg
alert (people.toLocaleString()); //Nikolaos,Grigorios
我们在这里定义了两个对象:personl和person2。而且还分别为每个对象定义了一个toString()方法和一个toLocaleString()方法,这两个方法返回不同的值。然后,创建一个包含前面定义的两个对象的数组。在将数组传递给alert()时,输出结果是"Nicholas,Greg",因为调用了数组每一项的toString()方法(同样,这与下一行显式调用toString()方法得到的结果相同)。而当调用数组的toLocaleString()方法时,输出结果是"Nikolaos,Grigorios".原因是调用了数组每一项的toLocaleString()方法。
数组继承的toLocaleString()、toString()和valueOf()方法,南昌建设网站公司工程师认为在默认情况下都会以逗号分隔的字符串的形式返回数组项。而如果使用join()方法,则可以使用不同的分隔符来构建这个字符串。join()方法只接收一个参数,即用作分隔符的字符串,然后返回包含所有数组项的字符串。请看下面的例子:
var colors=["redl","green","blue"];
alert (colors.join(",")); //red, green, blue
alert( colors.join("||")); //red || greenl || blue
在这里,我们使用join()方法重现了toString()方法的输出。在传递逗号的情况下,得到了以逗号分隔的数组值。而在最后一行代码中,我们传递了双竖线符号,结果就得到了字符串"red|| green||blue"。
南昌网络公司工程师提醒,如果数组中的某一项的值是null或者undefined,那么该值在join()、toLocaleString()、toString()和valueOf()方法返回结果中以空字符表示。
希望本文对广大站长或从事企业网站建设公司的团队有所帮助,如对此不太理解的,可以与南昌做网站公司百恒网络技术部联系。我们很高兴与广大站长和从事企业网站建设公司技术人员分享我们的技术和经验。