javascript - Nullish 合并运算符不工作或未启用?

标签 javascript

我正在研究如何在 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/

相关文章:

javascript - 使用 php ajax jquery 从 mysql 发送或获取数据 - 什么是安全方法?

javascript - 使用之前调用的函数填充异步数组。

javascript - 比较 JavaScript 对象数组属性与字符串

JavaScript - 改进根据单个条件返回值的递归循环

javascript - 使用 jQuery/模块模式维护范围问题

javascript - 在javascript中下载数据是否有数据大小限制

javascript - 在 d3js 中创建基本条形图

javascript - 图表 js 禁用弹出窗口

javascript - 类型 'value' 上不存在属性 'HTMLElement'

javascript - 使用 JQuery 切换跨度中的文本