Han*_*ans 4 javascript function block jshint
我理解为什么将函数声明放在CONDITIONAL块中是不好的,但有没有理由建议不要在独立块中放置一个函数声明(除了可能导致混淆的参数,因为JS不是块作用域):
{
function foo() {};
}
Run Code Online (Sandbox Code Playgroud)
我这样做的原因是为了实现Sublime Text中代码的任意部分的代码折叠.
不,它不是"广泛的".这是语言语法.您上面的代码会导致未指定的行为,并可能在不同的引擎中出现不一致.它在大多数引擎中都可以像你期望的那样工作,但是ECMAScript的特定化禁止它的语法.
改为使用表达式:
{
var foo = function(){}; // legal ECMAScript, unlike the declaration
}
Run Code Online (Sandbox Code Playgroud)
引用带注释的规范:
注意:已知几种广泛使用的ECMAScript实现支持将FunctionDeclaration用作Statement.然而,在应用于此类FunctionDeclarations的语义中的实现之间存在显着且不可调和的变化.由于这些不可调和的差异,使用FunctionDeclaration作为Statement会导致代码在实现中无法可靠地移植.建议ECMAScript实现不允许使用FunctionDeclaration,或在遇到此类用法时发出警告.ECMAScript的未来版本可以定义用于在Statement上下文中声明函数的替代可移植方法.使用带有函数表达式的变量.
至于sublime文本,您可以折叠带注释的注释,例如.
归档时间: |
|
查看次数: |
1712 次 |
最近记录: |