es6基础
1、let和const是什么
let为变量,初始化后可重新赋值
const为常量,初始化后不可重新赋值
2、let和const、var的区别
①重复声明
var允许重复声明(已经存在的变量,重新再声明一次),let、const不允许
例如:function(a){
let a;
}
错误,a已经声明了,不能用let重复声明
②变量声明
var会提升变量的声明到当前作用域的顶部
console.log(a);
var a=1;
结果为undefined。代码等同于var a; console.log(a); a=1;
③暂时性死区
只要作用域内存在let、const,他们所声明的变量或常量就自动绑定这个区域,不再受到外部作用域的影响
let a=1;
function(){
console.log(a);
let a=2;
}
结果会报错。a只能在函数作用中找
④window对象的属性和方法
全局作用域中,通过var声明的变量和函数会自动变成window对象的属性和方法
⑤块级作用域:用花括号括起来的
var没有块级作用域,let和const有
例如:for(let i=0;i<3;i++){
}
console.log(i)
结果会报错
注意:function(){}是函数作用域,let a={}对象不是块级作用域

浙公网安备 33010602011771号