美文网首页你不知道的JavaScript程序员
es6块级作用域定义声明函数

es6块级作用域定义声明函数

作者: Funwt | 来源:发表于2017-08-29 02:04 被阅读14次
    // 浏览器的 ES6 环境
    function f() { console.log('I am outside!'); }
    
    (function () {
      if (false) {
        // 重复声明一次函数f
        function f() { console.log('I am inside!'); }
      }
    
      f();
    }());
    // Uncaught TypeError: f is not a function
    

    允许在块级作用域内声明函数。
    函数声明类似于var,即会提升到全局作用域或函数作用域的头部。
    同时,函数声明还会提升到所在的块级作用域的头部。
    实际相当于下面的代码

    // 浏览器的 ES6 环境
    function f() { console.log('I am outside!'); }
    (function () {
      var f = undefined;
      if (false) {
        function f() { console.log('I am inside!'); }
      }
    
      f();
    }());
    // Uncaught TypeError: f is not a function

    相关文章

      网友评论

        本文标题:es6块级作用域定义声明函数

        本文链接:https://www.haomeiwen.com/subject/icbndxtx.html