javascript - “或”运算符后需要括号
问题描述
为什么需要在以下代码中添加括号才能使其正常工作?
let test = 0 || () => {};
console.log(test);
let test = 0 || (() => {});
console.log(test);
解决方案
为了允许单个裸参数 ( a => a + 1
),JavaScript 语法降低了箭头函数表达式的优先级。
在这种情况下,解析器尝试将其解释0 || ()
为箭头函数的参数。这显然是不可能的,因此解析失败并出现语法错误。
推荐阅读
- typescript - typeorm 返回用于编码“UTF8”的无效字节序列:0xc1
- sql - 选择只有两个不同列的所有列
- vue.js - VueJS - 即使在显示路由器视图内容时如何突出显示侧边栏按钮
- c# - C#:BigInteger 到指定基数的字符串
- javascript - 到达一端时如何在点击滑块上制作无限过渡效果?(过渡问题)
- python - 如何使用 jsonpath-ng 算法?
- java - 在 Java 流中组合相似的元素
- c++ - g++10、C++20、boost 1.75.0 :: 错误:“awaitable”尚未在“boost::asio”中声明
- django - Django 只在循环中显示第一个 POST 元素
- python-3.x - 使用curve_fit拟合SIR模型的问题