let 与 var 的区别
a.let 不能重复声明,但var可以
b.let会产生块级作用域,且只在自己的作用域内生效,但var不受限制
c.变量提升
console.log(i) //undefined
var i=10;
console.log(i) //10
console.log(i) //报错
let i=10;
console.log(i) //10
d.let存在暂时性死域(变量只能先声明再使用)
当一个区域存在let声明时,这个区域就形成了一个封闭的作用域,在let声明前使用这个变量就会报错,也就是只能先声明再使用,这种语法也称为暂时性死域。
3.const
let有的特性const都有,唯一的区别是const声明的是一个常量,一旦声明就无法进行修改
console.log(i); //undefined
const i=10;
i=3; //报错
console.log(i)
总结:
va人可以重复申明 ;无法限制修改 ;没有块级作用域
let 不能重复声明 ;变量—可以修改 ;块级作用域(函数可以限制块级作用域)
const 不能重复声明 ;常量—不可以修改 ;块级作用域