ES6语法

67 阅读1分钟

let 和 const

let和const命令用于声明变量。

let声明的变量是可变的,const声明的变量是不可变的。

let foo = 1;
foo = 2;

const bar = 1;
bar = 2; // 报错

上面代码中,let声明的变量foo是可以重新赋值,但是如果对bar声明的变量重新赋值,就会报错。

注意,如果const声明的变量指向一个对象,那么该对象的属性是可变的。

const foo = {
  bar: 1
};

foo.bar = 2;

上面代码中,变量foo本身是不可变的,即foo不能指向另一个对象。但是,对象内部的属性是可变的,这是因为这时foo保存的是一个指针,这个指针本身不可变,但它指向的对象本身是可变的。

解构赋值

ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。

let [a, b, c] = [1, 2, 3];

上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值。

解构赋值不仅可以用于数组,还可以用于对象。

let { foo, bar } = { foo: "aaa", bar: "bbb" };
foo // "aaa"
bar // "bbb"

解构赋值时,还可以设置默认值。

上面代码中,变量y解构赋值时没有取到值,所以默认值就生效了。