ES6 变量申明
原始基本用法
为变量赋值,只能直接指定值。
var a = 1;
var b = 2;
var c = 3;
2. 数组解构赋值
a. let [foo, [[bar], baz]] = [1, [[2], 3]];
b.var [foo] = [];
c.
var [bar, foo] = [1];
数组解构赋值又如下几种情况
1. 完全解构, 左右两边完全一致,如上 (a) 相当于定义了 三变量 foo, bar , baz
2. 赋值不完全解构, 如上 (b), 或者 定义不完全解构, 如上 (c), 相当于定义了变量 foo (bar), 如果解构不成功,变量赋值undefined
3.
对象解构赋值
var { foo, bar } = { foo: "aaa", bar: "bbb" };
相当于定义了变量
foo
// "aaa" 和
bar // "bbb"
过程为 先声明 foo, 和 bar 变量,从赋值对象中查找 与之对应变量名的 key, 然后取key 值 赋值给变量。
例 1 :(易错点)
let foo;
l
et
{foo} = {foo: 1
}
;
// SyntaxError: Duplicate declaration "foo"
{foo} 对象解构赋值 会定义变量 foo 引起,重复定义冲突。
例 2: (误区)
let temp ={ foo, bar } = { foo: "aaa", bar: "bbb" };
上面赋值语句 申明了三个变量 temp, foo, bar 值分别为{ foo: "aaa", bar: "bbb" }, "aaa", "bbb"
4.字符串的解构赋值,
let [a, b, c] = 'hel';
相当于数组的解构赋值 =》 a === "h", b === "e", c === "l"