Object
对象存在两个转化为字符串的方法,一个是常用的toString
,另一个则是toLocaleString
。接下来通过示例来展示各种不同数据类型下的输出差异
注:基本数据类型在调用toString
与toLocaleString
时,会首先将基本数据类型实例化为对应的对象类型。比如var x = 'abc';
,示例中x
并不是对象类型,但是在调用时,会首先通过new String()
将文本实例化为String
包装类型
对象
效果相同,调用的是原始的Object.toString()
方法
字符串
效果相同,因其本身就是字符串
数字
toString
将数字转换为字符串,toLocaleString
在转换为字符串的同时,使用三位分节法进行显示
需要注意的是number
数字类型下这两个方法都是可传入参数的,如下图所示:toString
中传入的参数表示需要转换的进制,而toLocaleString
具体参数可查考:MDN
浮点数
toString
将浮点数转换为字符串,toLocaleString
在转换为字符串的同时,只保留了小数点后三位数,并进行了四舍五入
函数
效果相同,将函数直接转化为字符串
数组
效果相同,将数组转化为以,
分隔的字符串,与join(',')
相同
布尔值
效果相同,都是将布尔值转化为字符串
日期
toString
转换为以国际化日期显示格式的字符串,toLocaleString
转换为以本地日期显示格式的字符串