ES6作用域

涉及变量提升和闭包

   <script type="text/javascript">
      //ES5
       const callbacks = []
       for(var i = 0; i<3; i++){
           callbacks[i] =function () {
               return i*2
           }
       }
       console.table([
           callbacks[0](),
           callbacks[1](),
           callbacks[2]()
       ]);
   //ES6
       const callbacks = []
       for(let i = 0; i<3; i++){
           callbacks[i] =function () {
               return i*2
           }
       }
       console.table([
           callbacks[0](),
           callbacks[1](),
           callbacks[2]()
       ]);
 </script>
   <script type="text/javascript">
       //ES5
       ((function () {
          const  foo =function () {
              return 1
          }
          console.log("foo()===1",foo() ===2)
          ;((function () {
              var foo =function () {
                  return 2
              }
              console.log("foo()===2",foo() === 2)
          })())
       })())
       //ES6
       {
           function foo() {
               return 1
           }
           console.log('foo()===1',foo() === 1);
           {
               function foo() {
                   return 2
               }
               console.log('foo()===2',foo() === 2)
           }
       }
   </script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容