JavaScript: var与let的区别

360 阅读1分钟

JavaScript: var与let的区别

先介绍一下let关键字:

  1. let是ECMAScript 6(简称:ES6)中新增的命令.
  2. let是块级作用域,在 ES6 之前是没有块级作用域这个概念的

区别一: 作用域不同

在函数中用var声明变量,则这个变量作用于整个函数,var可以跨块,但是不能跨函数:

图一.png

区别二: var 可以重复声明,而 let 不能

图二.png

区别三: var声明变量会变量提升

var定义的变量会被提升到作用域顶部.而let有暂时性死区,不会被提升。用var定义变量容易产生全局污染

图三.png a显示为未定义,而b则直接报错

使用let声明变量的好处

1. 减少全局污染

2. 可以解决闭包问题