es6学习总结一

一.let与var 的区别

(1).作用域:

 let什么的变量在块级作用域内有效,而var声明则在全局作用内有效

(2).变量提升:

 let声明的变量不存在变量提升,即一定要在声明之后才能调用,否则就会报错;

 而var声明的变量则是存在变量提升的,即在声明之前也是可以调用的,不过结果值为undefined。

(3).暂时性死区:

只要块级作用域内存在let命令,它声明的变量就绑定在这个区域内,即使在全局里面有同名的变量,也跟这个没关系了,在该作用区域内,使用let声明之前,该变量都不可用。

(4)重复声明:

let声明的变量,在同一作用域内是不允许被重复声明的;

而var声明的变量则可以在同一作用域内被重复声明。

二.块级作用域的作用

(1).解决了es5中内层变量可能覆盖外层变量的问题

(2).避免了循环变量泄漏为全局变量

(3).避免内外层变量互相影响

(4)可以替代立即执行函数表达式

 

 

原文地址:https://www.cnblogs.com/absolute-child/p/8505265.html