JS中toString()、toLocaleString()和valueOf()方法的区别(摘录)

JavaScript中的toString()、toLocaleString()和valueOf()方法,主要用于Array、Boolean、Date、Number、String、Math、Error、Functionr等对象。

  • Array
var array = new Array("123","123","123");
console.log(array.valueOf());//Array[3]
console.log(array.toString());//123,123,123
console.log(array.toLocaleString());//123,123,123

valueOf:返回数组本身
toString():把数组转换为字符串,并返回结果,每一项以逗号分割。
toLocalString():把数组转换为本地数组,并返回结果。

  • Boolean
var boolean = new Boolean();
console.log(boolean.valueOf());//false
console.log(boolean.toString());//false

valueOf:返回 Boolean 对象的原始值。
toString():根据原始布尔值或者 booleanObject 对象的值返回字符串 “true” 或 “false”。默认为"false"。
toLocalString():Boolean对象没有toLocalString()方法。但是在Boolean对象上使用这个方法也不会报错。

  • Date
var date = new Date();
console.log(date.valueOf());//1540642478175
console.log(date.toString());//"Sat Oct 27 2018 20:14:38 GMT+0800 (中国标准时间)"
console.log(date.toLocaleString());//"2018/10/27 下午8:14:38"

valueOf:返回 Date 对象的原始值,以毫秒表示。
toString():把 Date 对象转换为字符串,并返回结果。使用本地时间表示。
toLocalString():可根据本地时间把 Date 对象转换为字符串,并返回结果,返回的字符串根据本地规则格式化。

  • Number
var num = new Number(2018);
console.log(num.valueOf());//2018
console.log(num.toString());//"2018"
console.log(num.toLocaleString());//"2,018"

valueOf:返回一个 Number 对象的基本数字值。
toString():把数字转换为字符串,使用指定的基数。
toLocalString():把数字转换为字符串,使用本地数字格式顺序。

  • Math
console.log(Math.PI.valueOf());//3.141592653589793

valueOf:返回 Math 对象的原始值。

  • String
var string = new String("abc");
console.log(string.valueOf());//"abc"
console.log(string.toString());//"abc"

valueOf:返回某个字符串对象的原始值。
toString():返回字符串。

  • Error
var e = new Error();
alert(e); //error
alert(typeof e.toString()); //string

toString():将Error对象转换成字符串。

  • Function
function add(a,b){
     var a,b,c;
     c = a + b;
     return c;
}
alert(add.toString());  
alert(typeof add.toString()); //string

toString()、toLocaleString()和ValueOf()方法始终都返回函数的代码,返回代码的格式因浏览器而异。

toString()方法与toLocalString()方法区别:

  1. toLocalString()是调用每个数组元素的 toLocaleString()
    方法,然后使用地区特定的分隔符把生成的字符串连接起来,形成一个字符串。

  2. toString()方法获取的是String(传统字符串);而toLocaleString()方法获取的是LocaleString(本地环境字符串),主要用于将数组 Number对象或Date对象转换为本地格式的字符串。

  3. 如果你开发的脚本在世界范围都有人使用,那么将对象转换成字符串时请使用toString()方法来完成。

  4. LocaleString()会根据你机器的本地环境来返回字符串,它和toString()返回的值在不同的本地环境下使用的符号会有微妙的变化。

  5. 所以使用toString()是保险的,返回唯一值的方法,它不会因为本地环境的改变而发生变化。如果是为了返回时间类型的数据,推荐使用LocaleString()。若是在后台处理字符串,请务必使用toString()。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 JavaScript Valueof、toString、toLocaleString 都是 Object 原型链上的方法,可以用来获取对象的值或者转换为不同的字符串形式。 1. valueOf(): valueOf() 方法返回一个对象的原始值。当 JavaScript 需要一个对象的原始值时,它会自动调用 valueOf() 方法。如果没有找到原始值,则会尝试调用 toString() 方法。 例如: ```javascript let num = new Number(10); console.log(num.valueOf()); // 10 ``` 这里的 `valueOf()` 返回了 `num` 的原始值,即 `10`。 2. toString(): toString() 方法返回一个对象的字符串表示形式。当 JavaScript 需要将一个对象转换为字符串时,它会自动调用 toString() 方法。 例如: ```javascript let num = new Number(10); console.log(num.toString()); // "10" ``` 这里的 `toString()` 返回了 `num` 的字符串表示形式,即 `"10"`。 3. toLocaleString(): toLocaleString() 方法返回一个对象的本地化字符串表示形式。当 JavaScript 需要将一个对象转换为本地化字符串时,它会自动调用 toLocaleString() 方法。该方法返回的字符串与所在地区的语言和文化相关。 例如: ```javascript let num = new Number(1234567.89); console.log(num.toLocaleString()); // "1,234,567.89" ``` 这里的 `toLocaleString()` 返回了 `num` 的本地化字符串表示形式,即 `"1,234,567.89"`,与所在地区的语言和文化相关。 总之,这三个方法都是用来获取对象的值或者转换为不同的字符串形式,但是具体使用要看实际情况和需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值