let:变量 不具备变量提升特性 const:常量(引用地址不可改变) 在声明时必须被赋值 let和const都是块级作用域 只在最靠近的一个块中(花括号内)有效
在es6中新增了模板字符串拼接:
var name='kingfan';
var age = 18;
var msg = `我是${name},今年${age}岁`;
console.log(msg) //打印 我是kingfan,今年18岁
ES6允许按照一定的模式,从数组或对象中提取值,对变量进行赋值,这种方式被称为解构赋值。
// 解构数组
var list =[1,2,3,4];
var [a,b,c,d] = list;
console.log(a); //1
console.log(b); //2
console.log(c); //3
console.log(d); //4
//结构对象
var obj = {
name:'kingfan',
age:18,
}
// 利用key去接受
var {name,age}=obj;
console.log(name); //'kingfan'
console.log(age); //18
// 利用其它变量名接收
var {name:pname,age:page}=obj;
console.log(pname); //'kingfan'
console.log(page); //18
当解构模式有匹配结果,且匹配结果是 undefined 时,会触发默认值作为返回结果。
let [a = 3, b = a] = []; // a = 3, b = 3
let [a = 3, b = a] = [1]; // a = 1, b = 1
let [a = 3, b = a] = [1, 2]; // a = 1, b = 2
a 与 b 匹配结果为 undefined ,触发默认值:a = 3; b = a =3 a 正常解构赋值,匹配结果:a = 1,b 匹配结果 undefined ,触发默认值:b = a =1 a 与 b 正常解构赋值,匹配结果:a = 1,b = 2