ES6新增
作用域
作用域是变量所作用的区域,也叫执行期上下文
块级作用域
let 声明的变量具有块级作用域,不存在变量提升,不能重复声明,声明之后绑定当前作用域
const 声明定义的是常量,具有let声明的特性;
conset声明指向的是内存中的地址,所以它定义的原始值不能改变,引用值可以改变
变量的解构赋值
数组的解构赋值 实质是模式匹配
数组解构赋值
//解构成功,左右两边迭代器要相同即两边都是数组或者两边都是对象
let [a,b,c] = [1,2,3];
console.log(a,b,c);
//解构失败的情况是没有对相应的值赋值个变量
let [d,e,f] = [1,2]; //let [d,e,f] = [1,2,undefined];
console.log(d,e,f);
// 不完全解构,没有变量接收多余的值
let [g,h] = [1,2,3];
console.log(g,h);
// 默认值,给变量设置默认值,当有赋值时将值赋给变量,当没有赋值时使用默认值
let [x = 10] = [20];
console.log(x);
//let [i = 10, y, z = 5] = [20,10]; console.log(i, y, z); //---> 20 10 5
对象的解构赋值
对象的解构赋值是无序的
let {
username, age} = {
age : 18, username : 'parker'};
console.log(username,age);//'parker' 18
let {
username:newName} = {
age : 18, username : 'parker'};
console.log(newName);//'parker'
字符串的扩展
模板字符串 ${常量/变量/表达式}
模板字符串可以嵌套模板字符串
var str = `hello wor ${
username}
${
g} + ${
h} = ${
g + h}
my name is: <