我正在查看 es6 兼容性表尝试学习Here https://kangax.github.io/compat-table/es6/#block-level-function-note.
in the bindings部分它说“块级函数声明?”。除了官方之外,我找不到任何博客或文档spec http://www.ecma-international.org/ecma-262/6.0/#sec-functiondeclarationinstantiation关于单词的组合。
问题:“块级函数声明”指的是什么?
示例 kangax 正在测试:
alert(function(){
'use strict';
function f() { return 1; }
{
function f() { return 2; }
}
return f() === 1;
}());
这意味着“提升”功能的行为方式与let
(vs var
).
在 ES5 中,大括号是“装饰”,除非它们出现在一些关键字之后,例如for
, if
, try
等等,所以,第二个f()
会“破坏”第一个,但在 ES6 兼容的运行时中,第二个f()
对块来说是私有的,因此不会替换名称f
由第一个函数定义。
在 ES6 大括号中 ({ ... }
) 表示一个块,即使前面没有关键字。也就是说,我在 ES6 代码中没有看到很多任意的块,可能只是因为缺乏实践、无知,或者可能只是因为缺乏需要;函数作用域在 JS 中运行得很好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)