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();

焦大叔叔
原文地址:https://www.cnblogs.com/tiny-jiao/p/6481148.html