-
let和var
let声明之前是不可用的会报错,而var会进行预处理输出undefined
let遵循全局和局部作用域,但是es6新增块级作用域概念,即其在整个大括号 {} 之内可见。而var是全局作用域和局部作用域,可以跨块访问
-
const和let区别
const 和 let的书块级作用域,不同的是const一旦赋值不可更改,但是本身是可以改变的(例如数组、对象这类变量)
const使用时必须初始化赋值
更新(最近一道面试题):
var、let声明的有效范围存在不同,var作为全局变量可使用window.变量运用(或者直接声明 num = 2),但是let虽然也是全局但是它是带有块性质的使用,通过window和this的关键字直接全局函数中使用结果为undefined