前言
- ES6中引入了let关键字和块级作用域的概念。该博文从多方面说明let和var关键字的区别,以及ES6引进该关键字的“The Good Parts”,以及解决的一些javascript之前存在的问题。
let和var的相同点
- let和var关键字都用于声明变量
let和var的不同点
变量作用域
- let关键字声明的变量只在let命令所在的代码块内有效。
var x = 2;
let y = 3;
- 上面代码中,var和let的作用域都是全局作用域,但是要注意:
- 在javaScript中,全局作用域是针对JavaScript环境
- 在HTML中,全局作用域是window对象
- 使用var关键字声明的全局作用域变量属于window对象
- 使用 let 关键字声明的全局作用域变量不属于 window 对象
let name = 'Aaron_hj';
//不能使用window.name访问该变量
循环作用域
var a = [];
for (var i = 0; i < 10; i++) {
a[i] = function (