我正在尝试确定用于模块级函数定义的样式。
以下是我考虑的选项:
// function expression using an arrow
const foo = (arg)=> {
// ...
};
// function expression with the `function` keyword
const bar = function(arg){
// ...
};
// function declaration
function baz(arg){
// ...
}
我更喜欢foo
样式,但它似乎是非标准的。我没有考虑过它的考虑因素吗?例如,在使用函数表达式const
或箭头时,是本机还是在转换时会有显着的性能损失吗?
这是我到目前为止所拥有的:
const
与函数表达式一起使用而不是使用函数声明的优点:const
和let
,则不会提升任何内容:它使语言更易于使用。 const
会使解释器抛出错误(这非常有用)。const
可以说出你的意思:大多数时候,人们想要定义一个函数,而不是分配给一个变量。const
代替函数声明可以更清楚地表明函数是JS中的值。我找不到任何函数表达式难以调试的情况,或者在函数表达式中使用递归更难的情况。
function
关键字的优点:this
和arguments
的新值。