首页 > 解决方案 > “或”运算符后需要括号

问题描述

为什么需要在以下代码中添加括号才能使其正常工作?

let test = 0 || () => {};
console.log(test);

let test = 0 || (() => {});
console.log(test);

标签: javascript

解决方案


为了允许单个裸参数 ( a => a + 1),JavaScript 语法降低了箭头函数表达式的优先级。

在这种情况下,解析器尝试将其解释0 || ()为箭头函数的参数。这显然是不可能的,因此解析失败并出现语法错误。


推荐阅读