浅析toString()和toLocaleString()的区别

翻看《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的解释):

  1. 如果是toString(),会直接返回标准的格式;
  2. 如果是toLocaleString(),先判断是否指定语言环境(locale),指定的话则返回当前语言环境下的格式设置(options)的格式化字符串;没有指定语言环境(locale),则返回一个使用默认语言环境和格式设置(options)的格式化字符串。

 

接下来是吐槽时间,不得不吐的是 ecmascript官方文档的解释真是看的费劲,看了官方文档的toLocaleString()心中一千零一只羊驼狂奔而过,并感叹说:然而这并没有什么卵用。但是不得不对MDN继续无法自拔,也许这就是活跃社区的好处。

也许是功力不够,继续修炼再看看。

posted on 2015-05-30 22:12  _blank  阅读(2133)  评论(2编辑  收藏  举报

导航