如下代码:
if (true) {
// 在某个条件分支下创建一个函数,并且只在这个分支内使用。
function a() {
// code...
}
a();
}
// 报错:
"Move function declaration to program root. (no-inner-declarations)"
要把函数定义在整个文档的最外层才行。我在网上搜索看到的说法是:
ES6以前,函数声明只能在程序或另一个函数体的最前面,所以在代码块内部声明函数是错误的做法。另外,由于 javascript 中代码声明会被提升到代码当前作用域的最前面,所以在代码块内声明变量也是不明智的做法
是不是在ES6之前,这样声明是语法错误?另外,我会把这个函数保持在它被调用之前,这样就不会发生变量提升了。
其实我很郁闷,因为我的代码要根据不同场景执行不同的代码,有些函数只在某一个场景下使用。按照这个标准的话要把大量函数移出来,结果就是声明的这些函数有很多根本没有被调用。这样是不是会多占用资源?
Smart猫小萌
茅侃侃
相关分类