因此,我正在尝试使用给定的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 2019 ECMAScript® 2019 Internationalization API Specification:
此字段的值必须是一条记录,其中必须包含带有三种数字格式样式的名称的字段:“十进制”,“百分比”和“货币”。
根据Draft ECMA-402 / February 27, 2020 ECMAScript® 2020 Internationalization API Specification:
此字段的值必须是一个Record,它的字段必须具有四种数字格式样式的名称:“小数”,“百分比”,“货币”,和“单位”。
Firefox和Safari正在实施ECMA-402规范的第六版,而Chrome浏览器正在实施同一规范的草稿版本。规范草案可以随时更改,并且不能保证此新的unit
值将包含在第七版中。如果您想跨浏览器兼容并且面向未来,则应坚持使用第6版,并等待第7版发布,然后再使用这些新功能。