Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在使用es6/es7时替换函数声明的使用_Javascript_Ecmascript 6_Babeljs_Ecmascript 2017 - Fatal编程技术网

Javascript 在使用es6/es7时替换函数声明的使用

Javascript 在使用es6/es7时替换函数声明的使用,javascript,ecmascript-6,babeljs,ecmascript-2017,Javascript,Ecmascript 6,Babeljs,Ecmascript 2017,我更喜欢做函数声明 doSomething() //still works function doSomething() {} 结束 因为有了函数声明,我不必担心顺序,它只是在顶部被提升了。现在说到es6,我的同事喜欢做const doSomething=()=>{},因为他们不喜欢“function”这个词。我把吊运器弄丢了,我怎么能把它修好 我希望我能做到这一点 abc() abc() => {} 但是我必须使用babel,以便在es6/es7中可以忽略单词function来创建函

我更喜欢做函数声明

doSomething() //still works
function doSomething() {}
结束

因为有了函数声明,我不必担心顺序,它只是在顶部被提升了。现在说到es6,我的同事喜欢做const doSomething=()=>{},因为他们不喜欢“function”这个词。我把吊运器弄丢了,我怎么能把它修好

我希望我能做到这一点

abc()
abc() => {}
但是我必须使用babel,以便在es6/es7中可以忽略单词
function
来创建函数?

不,您不能:

abc();

abc()=>{console.log('test');}
如果您针对的是支持ES6的浏览器或环境,则不需要
babel
,这取决于具体情况。箭头函数不会被提升。事实上,这是一种很好的行为,因为它需要更多的可调试代码。告诉你的同事你不喜欢
const
,或者(箭头)函数表达式。让您的同事明白,在ES6+中,
function
声明在任何意义上都不是“不推荐的”。一起建立一个编码约定。但我们并不经常这么做,大多数时候我们只是想创建一个函数,将业务逻辑“存储”到更小的部分中。我知道,
这个
在arrow函数中消失了,我们发现arrow函数很有用,因为我们编写了更短的代码,特别是我们不需要显式返回。然后只使用arrow函数。在我看来,在使用函数之前声明它们是一种很好的做法。所以不要依赖提升。好吧,有道理,没有对错之分,只是偏好而已。
abc()
abc() => {}