块内函数声明
最后更新于:2022-04-01 22:24:26
## 块内函数声明
不要在块内声明一个函数
不要写成:
```
if (x) {
function foo() {}
}
```
虽然很多 JS 引擎都支持块内声明函数, 但它不属于 ECMAScript 规范 (见 [ECMA-262](http://www.ecma-international.org/publications/standards/Ecma-262.htm), 第13和14条).
各个浏览器糟糕的实现相互不兼容, 有些也与未来 ECMAScript 草案相违背. ECMAScript 只允许在脚本的根语句或函数中声明函数.
如果确实需要在块中定义函数, 建议使用函数表达式来初始化变量:
```
if (x) {
var foo = function() {}
}
```
';