微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

空合并运算符不起作用或未启用?

如何解决空合并运算符不起作用或未启用?

我正在研究如何在 javascript 中设置变量,并在我在这里看到的一篇帖子中发现了 Nullish 合并运算符 (??)

但是现在,当我尝试使用它时,出现此错误

Unexpected token,expected,

对于这一行:

var oldBookScript = (localStorage.getItem(book.id) ?? newBookScript);

我希望变量 oldBookScript 的值为 localStorage.getItem(book.id) 但如果它为 null 或空,我希望它的值为 newBookScript

我需要以某种方式启用它吗?

谢谢!

解决方法

它是一种语法结构,这意味着为了使用它运行代码,您需要处于一个足以支持它的最新环境中。

例如,最新版本的 Node、Chrome 和 Firefox(以及其他)都可以与您的代码一起正常运行,但较旧的环境(如 IE11)会引发 SyntaxError。

在标准脚本中,鉴于它的语法,无法在特定环境中“启用”它 - 要么支持,要么不支持。在这种情况下,通常的方法是使用 Babel 将源代码(具有所有现代语法)转换为 ES6 或 ES5,以便过时的浏览器可以理解它。

但是如果您使用的是 React,那么您的代码的 JSX 已经被转译了。 create-react-app does support the nullish coalescing operator 的最新版本。如果可能,升级到更新版本的 create-react-app。如果您有更多手动设置,则需要确保您的代码使用 Babel 进行转译并使用 Babel 7.8.0 or later

参见 Babel 中的 these docs,了解如何通过 @babel/preset-react 预设将其集成到 React 中。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。