我正在研究如何在 javascript 中设置变量,并且在我在这里看到的一篇帖子中发现了关于 Nullish 合并运算符 (??) 的信息。
但是现在,当我尝试使用它时,出现了这个错误:
Unexpected token, expected ,
对于这一行:
var oldBookScript = (localStorage.getItem(book.id) ?? newBookScript);
我希望变量 oldBookScript
具有 localStorage.getItem(book.id)
的值,但如果它为 null 或空,我希望它具有该值newBookScript
我需要以某种方式启用它吗?
谢谢!
最佳答案
它是一种语法结构,这意味着为了使用它运行代码,您需要处于一个足以支持它的最新环境中。
例如,最新版本的 Node、Chrome 和 Firefox(以及其他)都可以很好地运行您的代码,但较旧的环境(如 IE11)会抛出语法错误。
在标准脚本中,考虑到它的语法,无法在特定环境中“启用”它——支持或不支持。在这种情况下通常的做法是使用 Babel将源代码(具有所有现代语法)转换为 ES6 或 ES5,以便过时的浏览器可以理解它。
但是如果你使用的是 React,你的代码的 JSX 已经被转译了。 create-react-app 的最新版本 does support the nullish coalescing operator .如果可能,请升级到更新版本的 create-react-app。如果您有更多的手动设置,则需要确保您的代码正在使用 Babel 进行转译并使用 Babel 7.8.0 or later .
参见 these docs来自 Babel 关于通过 @babel/preset-react
预设将其集成到 React 中。
关于javascript - Nullish 合并运算符不工作或未启用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68413983/