【问题标题】:Confusing JavaScript assignment syntax error [duplicate]令人困惑的 JavaScript 赋值语法错误 [重复]
【发布时间】:2023-04-08 15:01:02
【问题描述】:

出于某种原因,至少在浏览器控制台中,这是一个有效的表达式,其计算结果为 x 等于 1

{x} = {x:1}

然而,同样的事情,最后有一个分号会引发以下错误:

SyntaxError: Unexpected token =

谁能解释一下原因?

【问题讨论】:

  • 确切的错误信息是什么?
  • Uncaught SyntaxError: Unexpected token = 最有可能
  • 你必须在第一条语句中遇到错误
  • 你需要在前面写var,才能让它再次工作。喜欢var {x} = {x:1};
  • 我不明白为什么这被否决了。这是一个关于令人困惑和意想不到的行为的很好的问题。

标签: javascript


【解决方案1】:

你只需要在前面写var

var {x} = {x:2};
console.log(x);

【讨论】:

  • 我知道这不会引发错误,这是在这种情况下为 x 赋值的正确方法,我想知道为什么在同一语句中缺少 varlet带有分号的语句会引发错误,而没有分号的语句不会。
  • @DaveDemirkhanyan 该规范可能需要varlet 来解构。否则可能会导致模棱两可的情况,或其他什么。它也可能使解析更加困难,因为您必须通过解构大括号来查看它是定义文字还是解构和对象。
猜你喜欢
  • 2016-02-09
  • 1970-01-01
  • 1970-01-01
  • 2014-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-02
  • 2018-03-14
相关资源
最近更新 更多