Object.prototype.toLocaleString()

基线 广泛可用

此功能已得到良好建立,可在许多设备和浏览器版本中使用。它自以下时间起在所有浏览器中可用 2017 年 9 月.

toLocaleString() 方法是 Object 实例的方法,它返回表示此对象的字符串。此方法旨在被派生对象为了特定于区域设置的目的而覆盖。

试一试

语法

js
toLocaleString()

参数

无。但是,所有覆盖此方法的对象都应最多接受两个参数,分别对应于 localesoptions,例如 Date.prototype.toLocaleString。参数位置不应用于任何其他目的。

返回值

调用 this.toString() 的返回值。

描述

所有从 Object.prototype 继承的对象(即,除了 null 原型对象 之外的所有对象)都继承 toLocaleString() 方法。 ObjecttoLocaleString 返回调用 this.toString() 的结果。

提供此函数是为了让对象拥有一个通用的 toLocaleString 方法,即使并非所有对象都会使用它。在核心语言中,这些内置对象会覆盖 toLocaleString 以提供特定于区域设置的格式。

示例

使用基本 toLocaleString() 方法

基本 toLocaleString() 方法仅调用 toString()

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

Array toLocaleString() 覆盖

Array.prototype.toLocaleString() 用于通过调用每个元素的 toLocaleString() 方法并将结果用特定于区域设置的分隔符连接起来,从而将数组值打印为字符串。例如

js
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() 用于打印出更适合特定区域设置的日期显示。例如

js
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() 用于打印出更适合特定区域设置的数字显示,例如使用正确的分隔符。例如

js
const testNumber = 2901234564;
// "2901234564"

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

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

规范

规范
ECMAScript 语言规范
# sec-object.prototype.tolocalestring

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅