参考样式指南中的第7.1节:
// bad
function foo() {
}
// good
const foo = function bar() {
};
我似乎无法理解第一个陈述到底出了什么问题? 怎么样不好? (fyi ..我确实理解第一个声明被悬挂而且#const不会被悬挂的区别。我不明白的是悬挂得不好?
答案 0 :(得分:2)
AirBnB已经解释了为什么他们认为函数声明托管了一件坏事here:
7.1使用命名函数表达式而不是函数声明。
为什么呢?函数声明被悬挂,这意味着它很容易 - 太容易了 - 在文件中定义之前引用该函数。 这会损害可读性和可维护性。如果你发现了 函数的定义很大或很复杂 干扰理解文件的其余部分,然后也许就是这样 是时候把它提取到自己的模块了!别忘了给这个命名 表达式 - 匿名函数可以使定位更难 错误调用堆栈中的问题。