JavaScript 系列 - Object.prototype.toLocaleString

126 阅读1分钟

toLocaleString()  方法返回一个表示对象的字符串。该方法旨在由派生对象重写,以达到其特定于语言环境的目的。

重写此方法的所有对象最多只能接受两个参数,分别对应于 locales 和 options,例如 Date.prototype.toLocaleString。这些参数位置不应该用于任何其他目的。

const obj = {
  toString() {
    return "My Object";
  },
};
console.log(obj.toLocaleString()); // "My Object"

Array 重写的 toLocaleString()

Array.prototype.toLocaleString() 用于将数组值打印成字符串,通过调用每个元素的 toLocaleString() 方法,并使用特定于语言环境的分隔符拼接。

const testArray = [4, 7, 10];

const euroPrices = testArray.toLocaleString("fr", {
  style: "currency",
  currency: "EUR",
});
// "4,00 €,7,00 €,10,00 €"

Date 重写的 toLocaleString()

Date.prototype.toLocaleString() 用于打印成更适合特定语言环境的日期显示。

const testDate = new Date();
// "Fri May 29 2020 18:04:24 GMT+0100 (British Summer Time)"

const deDate = testDate.toLocaleString("de");
// "29.5.2020, 18:04:24"

const frDate = testDate.toLocaleString("fr");
// "29/05/2020, 18:04:24"

Number 重写的 toLocaleString()

Number.prototype.toLocaleString() 用于打印成更适合特定语言环境的数字显示,例如使用正确的分隔符。

const testNumber = 2901234564;
// "2901234564"

const deNumber = testNumber.toLocaleString("de");
// "2.901.234.564"

const frNumber = testNumber.toLocaleString("fr");
// "2 901 234 564"