我正在尝试使用 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/