学习资料来源
文章开头感谢技术胖的知识分享!
一、新的声明方式
1、let局部声明:
同var用于声明变量,但是只在声明的区块内起作用,无法变量提升,可以用于防止数据污染。
2、const局部声明:
用于声明常量变量,声明后不可修改;只在区块内起作用,无法变量提升,声明时须赋初值。
二、变量的解构赋值
1、数组的解构赋值
let a = 1;
let b = 2;
let c = 3;
等同于
let [a,b,c] = [1,2,3];
-
注:
1)、等号左侧的数组与等号右侧的赋值形式须统一:let [a,[b,c],d] = [0,[1,2],3];
2)、允许在等号左侧赋默认值:
let [a,b = 2] = [1] console.log(a,b) // 1 2
2、对象的解构赋值
let {foo, bar} = {foo: "123", bar: "abc"};
-
注
1)、数组解构赋值必须顺序一致,而对象解构赋值没有次序,变相名与属性名相同即可。2)、若在解构赋值之前就定义了变量名,则解构赋值会报错:
let foo; {foo} = {foo: '123'}; console.log(foo); // 报错
在解构赋值语句外套上圆括号即可解决:
let foo; ({foo} = {foo: '123'}); console.log(foo); // 123
3、字符串解构赋值
字符串也可以解构,这是因为,此时字符串被转换成了一个类似数组的对象。
const [a,b,c,d,e,f]="JSPang";
console.log(a); // J
console.log(b); // S
console.log(c); // P
console.log(d); // a
console.log(e); // n
console.log(f); // g