解构赋值
基本用法
1 | let [a, b, c] = [1, 2, 3] |
不完全解构也会解构成功
1 | let [x, y] = [1, 2, 3] |
只要具备 Iterator 接口,都可以进行解构赋值
1 | function* fibs() { |
默认值
1 | let [foo = "true"] = [] |
如果默认值是一个表达式,那么这个表达式是 lazy evaluation 的,只有在用到时才会求值。
1 | function f() { |
对象的解构赋值
1 | let { foo, bar } = { foo: "aaa", bar: "baz" } |
前者是匹配模式,后者是变量。
1 | let { foo: foo, bar: bar } = { foo: "aaa", bar: "baz" } |
解构的嵌套
1 | let obj = { |
如果解构失败,变量的值等于 undefined
解构的用途
交换变量的值
1 | let x = 1, |
从函数返回多个值
1 | function example1() { |
函数参数的定义
1 | function f([x, y, z]) {} |
提取 JSON 数据
1 | let jsonData = { |