JS中toString()、toLocaleString()、valueOf()的区别

前言

Array、Boolean、Date、Number等对象都具有 toString()、toLocaleString()、valueOf()三个方法,那这三个方法有什么区别?

一、JS Array

1)举例

var array = new Array("niu","li","na");  
console.log(array.valueOf());
console.log(array.toString());
console.log(array.toLocaleString());

2)结果

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

二、JS Boolean

1)举例

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

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

三、JS Date

1)举例

var date = new Date();
console.log(date.valueOf());
console.log(date.toString());
console.log(date.toLocaleString());

2)结果

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

四、JS Math

1)举例

console.log(Math.PI.valueOf());

2)结果

3)总结 valueOf:返回 Math 对象的原始值。

五、JS Number

1)举例

var num = new Number(1337);
console.log(num.valueOf());
console.log(num.toString());
console.log(num.toLocaleString());

2)结果

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

六、JS String

1)举例

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

2)结果 abc abc 3)总结 valueOf:返回某个字符串对象的原始值。 toString():返回字符串。

七、toString() VS toLocalString()

  1. toLocalString()是调用每个数组元素的 toLocaleString() 方法,然后使用 地区特定的分隔符把生成的字符串连接起来,形成一个字符串。
  2. toString()方法获取的是String(传统字符串),而toLocaleString()方法获取 的是LocaleString(本地环境字符串)。
  3. 如果你开发的脚本在世界范围都有人使用,那么将对象转换成字符串时请使用 toString()方法来完成。
  4. LocaleString()会根据你机器的本地环境来返回字符串,它和toString()返回的 值在不同的本地环境下使用的符号会有微妙的变化。
  5. 所以使用toString()是保险的,返回唯一值的方法,它不会因为本地环境的改变而 发生变化。如果是为了返回时间类型的数据,推荐使用LocaleString()。若是在后台 处理字符串,请务必使用toString()。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户画像

python2与python3的字符串编码对比

python3相比于python2最大改变在于,python 3对文本和二进制数据作了更为清晰的区分,两者不可做任何隐式转化。

10830
来自专栏小狼的世界

由.call引起的

以前看过的源码里,也有用到过.call的时候,今天的一个例子,也碰到了,为了彻底的明白这个的用法,Google了一下,找到了一些比较有用的资料。

9940
来自专栏CDA数据分析师

工具 | Python集合使用详解

我会在这篇文章介绍Python几种类型的集合。 在开始前,先定义集合是什么。一个集合就像篮子,你可以放进和取出东西,可以是同一类的东西,也可以是不同类的。基本上...

23750
来自专栏老马说编程

计算机程序的思维逻辑 (13) - 类

类 程序主要就是数据以及对数据的操作,为方便理解和操作,高级语言使用数据类型这个概念,不同的数据类型有不同的特征和操作,Java定义了八种基本数据类型,其中,...

198100
来自专栏Kevin-ZhangCG

[ Java面试题 ]基础篇之一

22150
来自专栏程序员的知识天地

20分钟搞定Python 函数基础知识

简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运行。Python中的函数在其他语言中也叫做过程或子例程,那么这些被包装起来的语...

14830
来自专栏乐百川的学习频道

Java 8 新特性(一)lambda表达式

Java 9 好像也快出了,不过我连Java 8的新特性都还没认真研究过,所以这几篇文章就是来介绍Java 8的新特性的。首先,第一个重要的特性就是传说中的la...

24680
来自专栏大闲人柴毛毛

稳扎稳打JS——自由变量

自由变量的作用域在程序运行前就已经确定! 自由变量相当于Java中的全局变量,它在外层作用域中声明,但在内层作用域中使用,如下所示: var a = 1; f...

38770
来自专栏用户2442861的专栏

JS面向对象的程序设计

http://www.cnblogs.com/gaojun/p/3386552.html

10810
来自专栏技术博文

js 六种数据类型的区别及bool 转换判断

一、bool型转换判断: 1、true 和 1 比较是相同,false 和 0 比较是相同(是 “==” 比较),因为内部会实现数据类型的 转化,将true 转...

37550

扫码关注云+社区

领取腾讯云代金券