在ES6中什么是新规范,"块级函数声明"是什么意思?

时间:2016-03-10 06:22:11

标签: javascript ecmascript-6

我在es6兼容性表中试图了解Here

绑定部分中它表示"块级函数声明?"。除了关于这些词组合的官方spec之外,我无法找到任何博客或文档。

问题:什么是"块级函数声明"指的是?

2 个答案:

答案 0 :(得分:4)

示例kangax正在测试:

alert(function(){
    'use strict';
    function f() { return 1; }
    {
      function f() { return 2; }
    }
    return f() === 1;
}());

这意味着“吊装”功能与let(vs var)的行为相同。

在ES5中,大括号是“装饰”,除非它们出现在foriftry等几个关键字之后,因此,第二个f()会“clobber”是第1个,但在ES6-compat运行时,第2个f()对于块是私有的,因此不会替换第1个函数定义的名称f

在ES6中,大括号({ ... })表示一个块,即使没有前面的关键字也是如此。也就是说,我没有在ES6代码中看到很多任意的块,可能只是因为缺乏实践,无知,或者仅仅是因为缺乏需求;函数范围在JS中运行良好。

答案 1 :(得分:1)

结帐SO What are the precise semantics of block-level functions in ES6?问题。

你找到一个很好的问题描述和非常详细的答案。