ES6
1.ES6 的新增语法
1.1使用let关键字声明变量
1.1.1let声明的变量只在所出的块级作用域有效
if(true){
let a=10;
}
console.log(a);
1.1.2使用let关键字声明的变量没有变量提升
console.log(a);
let a=100;
//变量先声明再使用ES6之前变量可以先使用再声明
1.1.3使用let关键字声明的变量具有暂时性的死区特性
var num=100;
if(true){
console.log(num);
let num=20;
}
1.2let经典面试题
let arr=[];
for(let i=0;i<2;i++){
arr[i]=function(){
console.log(i);
}
}
arr[0]();//0
arr[1]();//1
1.3 const
作用:声明常量,常量就是值(内存地址)不能改变的量;
1.3.1具有块级作用域
if(true){
const a=10;
if(true){
const a=20;
console.log(a);//20
}
console.log(a);//10
}
console.log(a);//a is not defined
输出结果分别为20 10 报错,这正好说明了const的块级作用域的结果
1.3.2声明常量时必须赋值
const PI;//Missing initializer in const declaration
1.4const let var 的区别