valueOf()、toString()、toLocaleString()三个方法的区别

顾名思义:

valueOf 返回其原始值

toString 转为字符串

toLocaleString 转为字符串,为地区特定的格式

 

 

(几个示例)

1. Number 

  (1234567).valueOf() // 1234567 数字原始值 

  (1234567).toString() // "1234567"

  (1234567).toLocaleString() // "1,234,567" 建议使用

 

2. Number Array

  [1234567,123,987654321].valueOf() // [1234567, 123, 987654321] 数组原始值 

  [1234567,123,987654321].toString() // "1234567,123,987654321"

  [1234567,123,987654321].toLocaleString() // "1,234,567,123,987,654,321" 会出问题,不建议使用

 

3.  Date

  new Date().valueOf() // 1620897985995

  new Date().toString()  // "Thu May 13 2021 16:37:41 GMT+0800 (中国标准时间)"

  new Date().toLocaleString() // "2021/5/13 下午4:41:04" 建议使用

 

 4. Boolean

  new Boolean().valueOf() // false 原始值 默认false

  !new Boolean().valueOf() // true

  !new Boolean() // false

  注意上面:默认false,那!false 应该是 true啊 其实是 false

  new Boolean().toString() // "false"

  new Boolean().toLocaleString() // "false"

 

其他:Math.PI.valueOf() // 3.141592653589793

 

 注意:

  toString()可以将数据都转为字符串,但是null和undefined不可以转换,会报错。可以 String(null) // null String(undefined) // undefined

  toString()括号中可以写数字,代表进制 toString(2)

  toString() 调的是 String/Number/Boolean.prototype.toString()

  toLocaleString() 建议使用场景:大金额分隔,日期转换,其他场景最好不要使用 

 

 

 其实还有一个 String(val)

String('123') // '123'
String(123) // '123'

 

 

 

 

 

 

 

 

 

参考自

 

posted @ 2021-05-13 17:28  James2019  阅读(134)  评论(0编辑  收藏  举报