js有块级作用域么?

//js私有作用域,js没有块级作用域
function Box(){
  for(var i=0;i<5;i++){}
  console.log(i);//5,如果js有块级作用域,那么i在for循环外面就不可能取得到,那么如何将其私有化呢?如下:
}
Box();


function Mybox(){
  (function(){//用一个自我执行的匿名函数将其包裹起来就可以实现变量的私有化
    for(var i=0;i<5;i++){
      console.log(i);//0 1 2 3 4
    }
  //变量i走出匿名函数就被自动销毁,防止变量命名冲突
  })();
  console.log(i);//报错,i is not defined
}
Mybox();

posted @ 2017-02-28 21:51  焦大叔  阅读(686)  评论(0编辑  收藏  举报