块级作用域

Posted blogzhao

tags:

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

  • 块级作用域必须有大括号
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

  

以上是关于块级作用域的主要内容,如果未能解决你的问题,请参考以下文章

js 函数作用域, 块级作用域和词法作用域

js没有块级作用域但有函数作用域

ES6 之 let和const块级作用域

0140 JavaScript作用域:概述全局作用域函数作用域块级作用域

ES6的块级作用域

js没有块级作用域