1、關于函數的聲明方式
1.1、ES5
在ES5中,我們常用的函數聲明方式有兩種。
第一種:
<script type="text/javascript">
function fun(){
}
</script>
這種方法是我們最常見的,也是學校中老師最先教的方式,這里的fun是函數名,由自己決定。
第二種:
<script type="text/javascript">
var fun = function(){
}
</script>
這種方法不太常見,但是應該也有見過,那么這兩種方式有什么區別嗎?
有的
當我們使用函數表達式的方式來聲明函數的時候,也給了函數名,這個函數名是不能夠在函數體外進行調用,只能在函數體內調用的。
可能這樣說有些抽象,舉個例子:
<script type="text/javascript">
fun1();
function fun1(){
console.log(1)
}
fun();
var fun = function(){
console.log(2)
}
</script>
在這個例子中,fun1()不會受到聲明位置的影響,而fun則會報錯,因為在這個例子中,fun()是以聲明變量的形式聲明,而變量必須先聲明才能調用,所以使用第二種方式聲明的話就只能在函數體調用函數名。
1.2、ES6
在ES6中,新增了一種叫箭頭函數的聲明方式,看下方↓↓↓
<script type="text/javascript">
var fun = ((parameter) => {
console.log(parameter)
})
</script>
箭頭函數需要使用變量來記錄函數才能在函數外調用,否則只能使用立即執行函數進行調用,例如:
<script type="text/javascript">
var fun = ((parameter) => {
console.log(parameter)
})(66)
</script>
箭頭函數有3種聲明方式,如下:
第一種:
<script type="text/javascript">
var fun = ((parameter) => {
console.log(parameter)
})
</script>
第二種:
<script type="text/javascript">
var fun = (parameter => {
console.log(parameter)
})
</script>
第三種:
<script type="text/javascript">
var fun = (parameter =>
console.log(parameter)
)(66)
</script>