我正在尝试使用 here 给出的关于格式化数字的示例。

console.log((16).toLocaleString('en-GB', {
    style: "unit",
    unit: "liter",
    unitDisplay: "long"
}));


我在 chrome 中尝试过,效果很好。但是,在 Safari 和 Firefox 中,我分别收到以下错误 Error: style must be either "decimal", "percent", or "currency"Error: invalid value "unit" for option style

从文档中我认为在查看浏览器兼容性后它应该适用于所有浏览器。我尝试寻找答案,但找不到有关此问题的任何信息。有谁知道这是为什么或者我可以在哪里找到更多信息?

最佳答案

问题来自 unit 字段的值 style

根据 ECMA-402, 6th edition, June 2019ECMAScript® 2019 Internationalization API Specification :



根据 Draft ECMA-402 / February 27, 2020ECMAScript® 2020 Internationalization API Specification :



Firefox 和 Safari 正在实现 ECMA-402 规范的第 6 版,Chrome 正在实现同一规范的草案版本。规范草案可以随时更改,并且没有正式保证这个新的 unit 值将包含在第 7 版中。如果你想跨浏览器兼容和面向 future ,你应该坚持使用第 6 版并等待第 7 版的发布,然后再使用这些新功能。

如果您需要详细信息,可以阅读 proposition for this new feature

关于javascript - 为什么 Intl.NumberFormat 不适用于 Safari 和 Firefox 中的单位?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60566942/

10-12 03:20