ES6知识点-变量及赋值
1、声明变量
var:全局变量声明;
let:局部变量声明;
const:常量声明;const声明的变量始终不变。
2、变量赋值
解构:ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值
注:在解构中,undefined和null是不一样的,undefined意思为空,不解构;null是可以解构,变量会赋值null
A:数组解构
例如:let [a,b,c]=[1,2,3],意思是let a=1;let b=2; let c=3;
等号左边和等号右边的形式要统一,如果不统一解构将失败。
解构的默认值:let[flag=true]=[]; console.log(flag),打印出的是true
let [a,b="我是谁"]=['你好'] console.log(a+b); //控制台显示“你好我是谁”
B:对象解构
let {foo,bar} = {foo:'hello',bar:'ES6'}; console.log(foo+bar); //控制台打印出了“helloEs6”
注意:对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。
C:字符串解构
let [a,b,c,d]='code' console.log(a);//控制台输出c console.log(b);//控制台输出o console.log(c);//控制台输出d console.log(d);//控制台输出e
这是因为,此时字符串被转换成了一个类似数组的对象
D:圆括号的使用
如果在解构之前就定义了变量,这时候你再解构会出现问题。
let foo; {foo} ={foo:'Code'}; console.log(foo); //编译报错
进行代码修改:
let foo; ({foo} ={foo:'Code'}); console.log(foo); //控制台输出Code