如前所述,所有對象都具有toLocaleString()、toString()和valueOf()方法。其中,調(diào)用數(shù)組的toString()和valueOf()方法會返回相同的值,即由數(shù)組中每個(gè)值的字符串形式拼接而成的一個(gè)以逗號分隔的字符串。實(shí)際上,為了創(chuàng)建這個(gè)字符串會調(diào)用數(shù)組每一項(xiàng)的toString()方法。來看下面這個(gè)例子:
var colors=["red","blue","green"]; //創(chuàng)建一個(gè)包含3個(gè)字符串的數(shù)組
alert(colors.toString()); //red,blue,green
alert(colors.valueOf()); //red,blue,green
alert(colors); //red,blue,green
南昌網(wǎng)站建設(shè)公司工程師捍示,在這里,我們首先顯式地調(diào)用了toString()和valueOf()方法,以便返回?cái)?shù)組的字符串表示,每個(gè)值的字符串表示拼接成了一個(gè)字符串,中間以逗號分隔。最后一行代碼直接將數(shù)組傳遞給了alert()。由于alert()要接收字符串參數(shù),所以它會在后臺調(diào)用toString()方法,由此會得到與直接調(diào)用toString()方法相同的結(jié)果。
另外,toLocaleString()方法經(jīng)常也會返回與toString()和valueOf()方法相同的值,但也不總是如此。當(dāng)調(diào)用數(shù)組的toLocaleString()方法時(shí),它也會創(chuàng)建一個(gè)數(shù)組值的以逗號分隔的字符串。而與前兩個(gè)方法唯一的不同之處在于,這一次為了取得每一項(xiàng)的值,調(diào)用的是每一項(xiàng)的toLocaleString()方法,而不是tostring()方法。請看下面這個(gè)例子:
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
我們在這里定義了兩個(gè)對象:personl和person2。而且還分別為每個(gè)對象定義了一個(gè)toString()方法和一個(gè)toLocaleString()方法,這兩個(gè)方法返回不同的值。然后,創(chuàng)建一個(gè)包含前面定義的兩個(gè)對象的數(shù)組。在將數(shù)組傳遞給alert()時(shí),輸出結(jié)果是"Nicholas,Greg",因?yàn)檎{(diào)用了數(shù)組每一項(xiàng)的toString()方法(同樣,這與下一行顯式調(diào)用toString()方法得到的結(jié)果相同)。而當(dāng)調(diào)用數(shù)組的toLocaleString()方法時(shí),輸出結(jié)果是"Nikolaos,Grigorios".原因是調(diào)用了數(shù)組每一項(xiàng)的toLocaleString()方法。
數(shù)組繼承的toLocaleString()、toString()和valueOf()方法,南昌建設(shè)網(wǎng)站公司工程師認(rèn)為在默認(rèn)情況下都會以逗號分隔的字符串的形式返回?cái)?shù)組項(xiàng)。而如果使用join()方法,則可以使用不同的分隔符來構(gòu)建這個(gè)字符串。join()方法只接收一個(gè)參數(shù),即用作分隔符的字符串,然后返回包含所有數(shù)組項(xiàng)的字符串。請看下面的例子:
var colors=["redl","green","blue"];
alert (colors.join(",")); //red, green, blue
alert( colors.join("||")); //red || greenl || blue
在這里,我們使用join()方法重現(xiàn)了toString()方法的輸出。在傳遞逗號的情況下,得到了以逗號分隔的數(shù)組值。而在最后一行代碼中,我們傳遞了雙豎線符號,結(jié)果就得到了字符串"red|| green||blue"。
南昌網(wǎng)絡(luò)公司工程師提醒,如果數(shù)組中的某一項(xiàng)的值是null或者undefined,那么該值在join()、toLocaleString()、toString()和valueOf()方法返回結(jié)果中以空字符表示。
希望本文對廣大站長或從事企業(yè)網(wǎng)站建設(shè)公司的團(tuán)隊(duì)有所幫助,如對此不太理解的,可以與南昌做網(wǎng)站公司百恒網(wǎng)絡(luò)技術(shù)部聯(lián)系。我們很高興與廣大站長和從事企業(yè)網(wǎng)站建設(shè)公司技術(shù)人員分享我們的技術(shù)和經(jīng)驗(yàn)。