【问题标题】:Why is a semicolon needed here? [duplicate]为什么这里需要分号? [复制]
【发布时间】:2016-09-28 17:11:09
【问题描述】:

我只是使用 es6 重新分配变量 a 和 b。如果我在 a 和 b 声明和赋值语句中留下分号,为什么会出现错误?如果分号被省略,解析器是否会尝试从 2 中提取属性?让 b = 2[a, b]...?

Works:
let a = 1;
let b = 2;
[a, b] = [b, a]

Error:

let a = 1
let b = 2
[a, b] = [b, a]

我正在寻找失败的真正原因。谢谢!

【问题讨论】:

  • 您在控制台中看到了什么错误?
  • 你在某处有“use strict”吗?

标签: javascript browser ecmascript-6


【解决方案1】:

如果分号被省略,解析器是否会尝试从 2 中提取属性?让 b = 2[a, b]...?

是的。如果您没有明确地以分号结束语句,则不能安全地以 [ 开始语句。

这已经在很多地方写过,它是standardJS(或其他linter)会警告你的众多事情之一:http://standardjs.com/rules.html#semicolons

【讨论】:

  • @brso05 这是因为它被解析为let b = 2[a, b] = [b, a],意味着你试图引用b insideb的定义。
猜你喜欢
  • 2010-12-15
  • 2017-09-08
  • 2017-06-13
  • 1970-01-01
  • 2012-06-03
  • 1970-01-01
  • 2021-08-27
  • 2023-03-13
相关资源
最近更新 更多