翻看《javascript高级程序设计》,对toString()和toLocaleString()两者的区别并没有直白的说明,简单查阅了一下 ecmascript官方文档 和 MDN
二者区别主要存在与Date类型中,举个例子来说:
1 var number = 1337; 2 var date = new Date(); 3 var myArr = [number, date, "foo"]; 4 5 var str = myArr.toLocaleString(); 6 7 console.log(str); 8 // 输出 "1337,2015/2/27 下午8:29:04,foo" 9 // 假定运行在中文(zh-CN)环境,北京时区
解释(详见 MDN的Date.prototype.toLocaleString的解释):
- 如果是toString(),会直接返回标准的格式;
- 如果是toLocaleString(),先判断是否指定语言环境(locale),指定的话则返回当前语言环境下的格式设置(options)的格式化字符串;没有指定语言环境(locale),则返回一个使用默认语言环境和格式设置(options)的格式化字符串。
接下来是吐槽时间,不得不吐的是 ecmascript官方文档的解释真是看的费劲,看了官方文档的toLocaleString()心中一千零一只羊驼狂奔而过,并感叹说:然而这并没有什么卵用。但是不得不对MDN继续无法自拔,也许这就是活跃社区的好处。
也许是功力不够,继续修炼再看看。
时间: 2024-12-18 09:09:31