数组中的toString,toLocalString,valueOf方法有什么区别

 我来答
ifeilong
2016-09-02 · TA获得超过8068个赞
知道大有可为答主
回答量:1187
采纳率:100%
帮助的人:800万
展开全部

调用数组的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()方法相同的结果。


另外,toLocalString()方法经常也会返回与toString()和valueOf()方法相同的值,但也不总是如此。

当调用数组的toLocaleString()方法时,它也会创建一个数组的以逗号分割的字符串。

而与前两个方法唯一的不同指出在于,这因此i是为了取得每一项的值,调用的是每一项的toLocaleString()方法,而不是toString()方法。


请看下面这个例子:

var person1 = {
   toLocaleString: function () {
       return "Nikolaos";
   },
   toString: function () {
       return "Nicholas";
   }
}
var 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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式