JavaScript: var与let的区别
先介绍一下let关键字:
- let是ECMAScript 6(简称:ES6)中新增的命令.
- let是块级作用域,在 ES6 之前是没有块级作用域这个概念的
区别一: 作用域不同
在函数中用var声明变量,则这个变量作用于整个函数,var可以跨块,但是不能跨函数:
区别二: var 可以重复声明,而 let 不能
区别三: var声明变量会变量提升
var定义的变量会被提升到作用域顶部.而let有暂时性死区,不会被提升。用var定义变量容易产生全局污染
a显示为未定义,而b则直接报错
使用let声明变量的好处
1. 减少全局污染
2. 可以解决闭包问题