块级作用域

  • 块级作用域必须有大括号
if (true) let x = 1; // 报错

if (true) {
  let x = 1;
}

  

if (true) var x = 1; // 正常
if (true) { var x = 1; }
  • 块级作用域内声明的函数,对作用域之外没有影响  
function f() { console.log('xx'); }
     (function () {
        function f() { console.log('xx'); 
} if (false) {} f(); }());
//es5 输出 xx

  

// ES6 
function f() { console.log('xx'); }
(function () {
  if (false) {
    function f() { console.log('xx'); }
  }

  f();
}());
// Uncaught TypeError: f is not a function

  

posted @ 2020-03-17 18:36  banzhuxiang  阅读(210)  评论(0)    收藏  举报