es6学习总结一

一.let与var 的区别

(1).做用域:

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

(2).变量提高:

 let声明的变量不存在变量提高,即必定要在声明以后才能调用,不然就会报错;es5

 而var声明的变量则是存在变量提高的,即在声明以前也是能够调用的,不过结果值为undefined。spa

(3).暂时性死区:

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

(4)重复声明:

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

而var声明的变量则能够在同一做用域内被重复声明。变量

二.块级做用域的做用

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

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

(3).避免内外层变量互相影响函数表达式

(4)能够替代当即执行函数表达式undefined

相关文章
相关标签/搜索