翻看《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繼續無法自拔,也許這就是活躍社區的好處。
也許是功力不夠,繼續修煉再看看。
