JS函數知識點梳理


JS函數知識點梳理

要想學好JavaScript除了基本的JavaScript知識點外,作為JavaScript的第一等公民——函數,我們要深入的瞭解。函數的多變來源於參數的靈活多變和返回值的多變。如果參數是一般的數據類型或一般對象,這樣的函數就是普通函數;如果函數的參數是函數,這就是我們所要知道的高級函數;如果創建的函數調用另外一部分(變量和參數已經預置),這樣的函數就是偏函數。

此外,還有一點就是可選參數(optionalparameter)的使用。

函數的分類

1.普通函數

有函數名,參數,返回值,同名覆蓋。示例代碼如下:

JS函數知識點梳理

2.匿名函數

沒有函數名,可以把函數賦值給變量和函數,或者作為回調函數使用。非常特殊的就是立即執行函數和閉包。

立即執行函數示例代碼如下:

JS函數知識點梳理

閉包示例代碼如下:

JS函數知識點梳理

3.高級函數

高級函數就是可以把函數作為參數和返回值的函數。如上面的閉包。ECMAScript中也提供大量的高級函數如forEach(),every(), some(), reduce()等等。

4.偏函數

JS函數知識點梳理

相信,研究過vue.js等常見庫源碼的同學不會陌生吧。

5.箭頭函數

箭頭函數不綁定自己的this,arguments,super。所以它不適合做方法函數,構造函數,也不適合用call,apply改變this。但它的特點就是更短,和解決匿名函數中this指向全局作用域的問題

JS函數知識點梳理

函數的參數

1.傳入明確的參數

JS函數知識點梳理

2.使用arguments對象

JS函數知識點梳理

3.省略參數,參數默認值

JS函數知識點梳理

4.對象參數

JS函數知識點梳理

對象參數比較常見,常出現在jQuery插件,vue插件等中。

5.可選參數

ES5實現可選參數,我們需要使用arguments。使用指定範圍的可選參數我們一般使用發對象參數,寫過jQuery等插件的應該印象深刻。

6.ES6中的函數參數

在ES6中,參數默認值,省略參數操作使用比較簡便。示例代碼如下:

JS函數知識點梳理

在ES6中,使用可選參數。示例代碼如下:

JS函數知識點梳理

7.解構參數

JS函數知識點梳理

函數的返回值

1.函數的返回值為基本數據類型,如字符串,數字,Boolean,null,undefined。示例代碼如下:

JS函數知識點梳理

2.函數的返回值為對象。示例代碼如下:

JS函數知識點梳理

不管是寫原生還是jQuery插件,亦或其他插件,這種情況都不少見。更深入的瞭解可以參考jQuery源碼。

3.返回值為函數

這個我們最為熟悉的莫過於閉包。具體可參考《老生常談之閉包》

參考文章

JS:How can you accept optional parameters?

Namedand Optional Arguments in JavaScript

Howto use optional arguments in functions (with optional callback)

JS函數知識點梳理


分享到:


相關文章: