如何在ES6中使用对象或数组解构赋值时混合const和let?

Phi*_*ero 15 javascript destructuring ecmascript-6

示例:

const foo = {a: "A", b: "B"}
const {a, b} = foo
Run Code Online (Sandbox Code Playgroud)

如果我想b成为变量使用let怎么办?

kin*_*ser 18

看起来你无法在一行中区分变量的声明.但是,您可以将其拆分为两行并使用不同的变量声明,具体取决于您要获取的变量.

const { a } = foo; 
let { b } = foo;
Run Code Online (Sandbox Code Playgroud)

  • 如果我想解构一个函数调用,我需要 3 行来完成它并给出一个中间变量名 (7认同)
  • 这个答案在代码示例中没有提到的糟糕场景是“...rest”。 (6认同)

dra*_*ski 8

如果要与const一起使用数组解构分配,并可以使用省略。让我们考虑一个例子:

const [a, b, c] = foo;
Run Code Online (Sandbox Code Playgroud)

如果您想让“ a”成为let,并让“ b”和“ c”为常量,则可以这样写:

let [ a ] = foo;
const [, b, c] = foo;
Run Code Online (Sandbox Code Playgroud)

另一种方法是利用数组是一个对象这一事实。所以你也可以这样写:

let [a] = foo;
const {1: b, 2: c} = foo;
Run Code Online (Sandbox Code Playgroud)

关于破坏的所有信息都可以在这里找到:http : //exploringjs.com