JS中toString(),toLocaleString()和valueOf()方法

 
 
var colors = ["red", "blue", "green"]; //   一个   3 个字符串的数
alert(typeof colors.toString());
alert(typeof colors.toLocaleString());
alert(typeof colors.valueOf());
toLocaleString()和toString()返回的都是字符串,把数组转换为字符串,并返回结果,每一项以逗号分割。
valueOf()返回的是数组对象
toLocaleString()和toString()的结果一样是因为colors数组的toLocaleString方法和toString方法值一样
如果不一样呢?看下面例子
var person1 = {
    toLocaleString : function () {
        return "Alamohan";
    },
    toString : function() {
        return "Nicholas";
    }
};
var person2 = {
    toLocaleString : function () {
        return "Grigorios";
    },
    toString : function() {
        return "Greg";
    }
};
var people = [person1, person2];
console.log(people);//Nicholas,Greg
console.log(people.toLocaleString());//Alamohan,Grigorios
console.log(people.toString());//Nicholas,Greg
结果就不一样了,如果把toLocaleString方法干掉呢
var person1 = {
    //toLocaleString : function () {
    //    return "Alamohan";
    //},
    toString : function() {
        return "Nicholas";
    }
};
var person2 = {
    //toLocaleString : function () {
    //    return "Grigorios";
    //},
    toString : function() {
        return "Greg";
    }
};
var people = [person1, person2];
console.log(people);//Nicholas,Greg
console.log(people.toString());//Nicholas,Greg
console.log(people.toLocaleString());//Nicholas,Greg
这样toString和toLocalString方法的结果就是一样的了,说明在toLocalString在默认情况是是调用totring,只有当toLocalString方法的值和
toString的值不一样的情况下才会出现不一样的结果。
语言表达能力不好,各位看官自己悟下,不喜勿喷








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值