Javascript 在ES6中,什么是新规范;块级函数声明“;什么意思?
我将在es6兼容性表中尝试学习 在绑定部分,它显示“块级函数声明?”。我找不到任何博客或文档,除了官方的文字组合Javascript 在ES6中,什么是新规范;块级函数声明“;什么意思?,javascript,ecmascript-6,Javascript,Ecmascript 6,我将在es6兼容性表中尝试学习 在绑定部分,它显示“块级函数声明?”。我找不到任何博客或文档,除了官方的文字组合 问题:什么是“块级函数声明”?示例kangax正在测试: alert(function(){ 'use strict'; function f() { return 1; } { function f() { return 2; } } return f() === 1; }()); 这意味着功能“提升”的行为方式与let(vsv
问题:什么是“块级函数声明”?示例kangax正在测试:
alert(function(){
'use strict';
function f() { return 1; }
{
function f() { return 2; }
}
return f() === 1;
}());
这意味着功能“提升”的行为方式与let
(vsvar
)相同
在ES5中,大括号是“装饰”,除非它们出现在几个关键字之后,如for
,if
,try
,等等。因此,第二个f()
会“重击”第一个,但在ES6 compat运行时,第二个f()会
是块专用的,因此不会替换第一个函数定义的名称f
在ES6中,大括号({…}
)表示块,即使前面没有关键字。也就是说,我在ES6代码中没有看到太多的任意块,可能是因为缺乏实践、无知,或者是因为缺乏需求;函数作用域在JS中运行得很好。请回答这个问题
你可以找到一个很好的问题描述和非常详细的答案。对此无可争辩:-@Bergi ohh,当然,很难与自己的答案争论。)你最后的一句话是:我猜你只是没有注意到(let…{…}块的
,但它们确实存在:-)诚然,它们内部的函数声明是稀疏的。@Bergi:我的最后一句话继续我的倒数第二句,所以任意性意味着非ES5块,仅适用于作用域。。。