码迷,mamicode.com
首页 > 其他好文 > 详细

let和ES6块级作用域

时间:2017-09-15 18:42:47      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:ref   some   rip   div   解决   课程   回收   ...   优点   

es6中的块级作用域

之前在看360的培训课程时,知道了{...}是个块级作用域,错误的认为{...}中声明的函数变量都不会被外界访问到,在看了你不知道的JS之后,发现并不是这样的。在块级作用域中使用let声明的变量外界无法访问到。

eg:

var foo = true;
if (foo) {
let bar = foo * 2;
bar = something( bar );
console.log( bar );
} c
onsole.log( bar ); // ReferenceError

let 关键字可以将变量绑定到所在的任意作用域中(通常是 { .. } 内部)。 换句话说, let为其声明的变量隐式地了所在的块作用域。

但是这种方式是隐式的,如果没有特别注意哪些块级作用域中有绑定的变量,程序变大了之后,容易造成混乱,所以最好为块作用域显式地创造块来部分解决这个问题。

1 var foo = true;
2 if (foo) {
3 { // <-- 显式的快
4 let bar = foo * 2;
5 bar = something( bar );
6 console.log( bar );
7 }
8 }
9 console.log( bar ); // ReferenceError

块级作用域的优点:

避免变量冲突,比如程序中加载了多个第三方库的时候,如果没有妥善地将内部私有函数或变量隐藏起来,就很容易引发变量冲突;

可以方便的进行模块管理;

利于内存回收;(块级作用域里声明的变量在块级作用域执行完之后会全部销毁)

let和ES6块级作用域

标签:ref   some   rip   div   解决   课程   回收   ...   优点   

原文地址:http://www.cnblogs.com/katelee/p/7527002.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!