【问题标题】:Parentheses needed after a 'Or' operator [duplicate]“或”运算符后需要括号[重复]
【发布时间】:2018-08-29 12:24:19
【问题描述】:

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

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

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

【问题讨论】:

  • 因为解析器需要你拥有这些才能正确解析代码。
  • Per firefox,“SyntaxError: 无效的箭头函数参数(箭头函数周围的括号可能有帮助)”
  • @AlexK。我肯定跳过了那部分,谢谢……如果你能根据它写一个答案,我会接受。

标签: javascript


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-17
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    • 2012-06-04
    相关资源
    最近更新 更多