ES6 中块的概念

Posted mrzhujl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES6 中块的概念相关的知识,希望对你有一定的参考价值。

ES6中新增了块的概念

块:

  是个花括号 { }  

  常用的一些带{ }的地方:

1  if(){}
2  for(){}
3  while(){}                  
4  switch(){}
5  function fn(){}

 

用了块{ },产生的变化:

1.没有被块 包着的函数声明,在全局都能被访问到

1 console.log(fn);//可以被访问到,是个函数代码块
2     function fn() {
3 }
4 console.log(fn);//也可以被访问到,是个函数代码块

 

2.被{块}包住的函数声明,在 { }上方访问时undefined / let 和 const 声明的变量 和 常量  支持{ }的概念,在块之外不能被访问(使用),

 1     console.log(a);//undefined
 2     if(true){
 3     var a = 1;
 4         console.log(a);//1
 5     }
 6     console.log(a);//条件是true:是1  。条件是false:是undefined
 7 /*******************************************************************/
 8     console.log(fn);//不管条件是否成立,在块的上方访问都为undefined
 9     if(true){
10         function fn() {
11         }
12     }
13     console.log(fn);//条件是true:是函数代码块  。条件是false:是undefined
14 /*******************************************************************/
15     //console.log(b);报错
16     {
17       let b = 0;
18         console.log(b);//0
19     }
20     console.log(b);//报错   块 中的let不能在外部被使用,

 

以上是关于ES6 中块的概念的主要内容,如果未能解决你的问题,请参考以下文章

predicateWithBlock: 中块的 bindings 参数是做啥用的?

Smarty 模板:如何更改子模板中块的顺序?

text 铜中块的例子

NameNode对数据块的管理

NameNode对数据块的管理

NameNode对数据块的管理