<script type="text/javascript">
setTimeout(alert('1'), 1000);
setTimeout(() => alert('a'), 1000); // second setTimeout method
</script>
1)第二条setTimeout()语句中的"()=> "是什么意思?
有时我看到胖箭头前的()=>表示输入参数,胖箭头后的语句=>表示执行,但对于上面第二个setTimeout()方法,似乎胖箭头不是这个意思,因为setTimeout()确实需要两个输入参数(回调函数和延迟时间,单位为毫秒)。
2)而在上面第二个setTimeout方法中,=>后面的语句是setTimeout()的输入参数,而不是实现......。
你定义了一个函数,即调用其他函数: alert
同为。
setTimeout(function() { return alert('a') }, 1000)
它的语法糖也有不同的范围。
() => {}
相当于:。
function(){
}
如果你看到一个没有箭头的函数 {}
意味着它右边的值将被返回。
() => someVal
等价的。
function(){
return someVal;
}
在你的例子中
setTimeout(() => alert('a'), 1000);
相当于:
setTimeout(function(){
return alert('a')
}, 1000);
注意: 箭头函数在IE上不工作
arrowFunction它是function(){......}的一个语法糖,所以实际上是
() => {}
==
function() {
}