let arr = []
let [a, b] = [2, 3]
arr.push(b);
[a, b] = [b, a + b]
console.log(a)
console.log(b) 把第三行的分号去掉,结果完全不同,为什么?不能理解。
括号,方括号,正则开头的斜杠,加号,减号,反引号 作为行首的时候必须要加分。 不然会导致上下行解析出问题。
回到你的问题。 2 3 行会在js解析引擎看来会变成这样
arr.push(b)[a, b] = [b, a + b] // 换个简单版本的 arr.push(b)[b] = [ a + b]
@liaoyinglong 感谢,主要是没报错,所以就相当于给3[2, 3]赋值。
arr.push(b)[a, b] = [b, a + b]
js使用无分号风格要注意的一点就是自动插分号的规则 建议的加分号方法是这样(虽然行首分号一开始会感觉有点怪,不过习惯了就好了)
let arr = [] let [a, b] = [2, 3] arr.push(b) ;[a, b] = [b, a + b] console.log(a) console.log(b)
eslint 添加规则 强制 let const 赋值表达式后空一行 这种情况估计检查不出。不过这代码看着有点别扭
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
回到你的问题。 2 3 行会在js解析引擎看来会变成这样
@liaoyinglong 感谢,主要是没报错,所以就相当于给3[2, 3]赋值。
arr.push(b)[a, b] = [b, a + b]
js使用无分号风格要注意的一点就是自动插分号的规则
建议的加分号方法是这样(虽然行首分号一开始会感觉有点怪,不过习惯了就好了)
eslint 添加规则 强制 let const 赋值表达式后空一行 这种情况估计检查不出。不过这代码看着有点别扭