toLocaleString()、toString()和valueOf()方法

来源:互联网 发布:台风海燕 知乎 编辑:程序博客网 时间:2024/05/22 04:45

所有的对象都具有toLocaleString()、toString()和valueOf()方法,其中,调用数组的toString()和valueOf方法会返回相同的值,即由数组中每个值的字符串形式拼接而成的一个以逗号分割的字符串。实际上,为了创建这个字符串会调用数组每一项的toString()方法。来看下面这个例子:

var colors = ["red", "blue", "green"];  //创建一个包含3个字符串的数组alert(colors.toString());               //red, blue, greenalert(colors.valueOf());                //red,blue,greenalert(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,Gregalert(people.toString());        //Nicholas,Gregalert(people.toLocaleString());  //Nikolaos,Grigorios
原创粉丝点击