ES6学习---let

来源:互联网 发布:2016零售业数据 编辑:程序博客网 时间:2024/05/22 03:47

let与var都是声明变量,区别
1.var 作用域:局部、函数,无块级作用域;let声明变量的作用域为块级作用域,声明一个块级局部变量
这里写图片描述
这里写图片描述
2.var有变量提升;let无变量提升
这里写图片描述
3.let会造成暂时性死区,即在块级作用域内用let声明之后,该变量不受外部的影响,即凡是在声明之前就使用这些变量的湖,就会报错。(感觉和没有变量提升类似?)
这里写图片描述
这里写图片描述
盗阮一峰大大的图帮助理解
这里写图片描述
(在块内,如果有let声明的变量,则在此之前使用该变量的操作都是错误的,在let声明了变量之后才可以开始使用该变量)
4.let不允许在同一作用域内重复声明,var可以重复声明
这里写图片描述
这里写图片描述

这里写图片描述
应用:let更适合用于for循环中,这样每次循环的i都是一个新的变量,只作用于循环体内,外部访问不到,不会造成变量污染

感想:let对ES5中很多不规范的写法进行纠正,例如在声明变量之前就对其进行使用,typeof 使代码更加规范,增加了块级作用域。

0 0