Intl.DisplayNames.prototype.of()

Baseline 已广泛支持

此特性已得到良好支持,可在多种设备和浏览器版本上使用。自 2021 年 4 月起,所有浏览器均已支持此特性。

Intl.DisplayNames 实例的 of() 方法接收一个代码,并根据实例化此 Intl.DisplayNames 对象时提供的区域设置和选项返回一个字符串。

试一试

const regionNamesInEnglish = new Intl.DisplayNames(["en"], { type: "region" });
const regionNamesInTraditionalChinese = new Intl.DisplayNames(["zh-Hant"], {
  type: "region",
});

console.log(regionNamesInEnglish.of("US"));
// Expected output: "United States"

console.log(regionNamesInTraditionalChinese.of("US"));
// Expected output: "美國"

语法

js
of(code)

参数

code

要提供的 code 取决于 type

返回值

特定于语言的格式化字符串,如果输入没有数据且 fallback"none",则返回 undefined

注意: 仅当 code 在结构上有效时,才会使用 fallback。请参阅 使用 fallback

异常

RangeError

如果 code 对于给定的 type 在结构上无效,则会抛出此错误。

示例

使用 of 方法

js
const regionNames = new Intl.DisplayNames("en", { type: "region" });
regionNames.of("419"); // "Latin America"

const languageNames = new Intl.DisplayNames("en", { type: "language" });
languageNames.of("fr"); // "French"

const currencyNames = new Intl.DisplayNames("en", { type: "currency" });
currencyNames.of("EUR"); // "Euro"

const languageNamesStandard = new Intl.DisplayNames("fr", {
  type: "language",
  languageDisplay: "standard",
});
languageNamesStandard.of("fr-CA"); // "français (Canada)"

const languageNamesDialect = new Intl.DisplayNames("fr", {
  type: "language",
  languageDisplay: "dialect",
});
languageNamesDialect.of("fr-CA"); // "français canadien"

使用 fallback

Intl.DisplayNames 使用 fallback: "code" 构建时,如果输入看起来在结构上有效但没有该输入的数据,of() 方法将返回 code。如果 fallback"none",则返回 undefined

js
console.log(
  new Intl.DisplayNames("en", { type: "region", fallback: "code" }).of("ZL"),
); // "ZL"

console.log(
  new Intl.DisplayNames("en", { type: "region", fallback: "none" }).of("ZL"),
); // undefined

但是,这仅适用于 code 在结构上有效的情况。例如,如果 type"region"code 不遵循 unicode_region_subtag 语法(2 个字母字符或 3 个数字字符),则会直接抛出 RangeError,而不是使用 fallback。

js
console.log(
  new Intl.DisplayNames("en", { type: "region", fallback: "code" }).of("ZLC"),
); // throws RangeError: invalid value "ZLC" for option region

规范

规范
ECMAScript® 2026 国际化 API 规范
# sec-Intl.DisplayNames.prototype.of

浏览器兼容性

另见