要想學好JavaScript除了基本的JavaScript知識點外,作為JavaScript的第一等公民——函數,我們要深入的瞭解。函數的多變來源於參數的靈活多變和返回值的多變。如果參數是一般的數據類型或一般對象,這樣的函數就是普通函數;如果函數的參數是函數,這就是我們所要知道的高級函數;如果創建的函數調用另外一部分(變量和參數已經預置),這樣的函數就是偏函數。
此外,還有一點就是可選參數(optionalparameter)的使用。
函數的分類
1.普通函數
有函數名,參數,返回值,同名覆蓋。示例代碼如下:
2.匿名函數
沒有函數名,可以把函數賦值給變量和函數,或者作為回調函數使用。非常特殊的就是立即執行函數和閉包。
立即執行函數示例代碼如下:
閉包示例代碼如下:
3.高級函數
高級函數就是可以把函數作為參數和返回值的函數。如上面的閉包。ECMAScript中也提供大量的高級函數如forEach(),every(), some(), reduce()等等。
4.偏函數
相信,研究過vue.js等常見庫源碼的同學不會陌生吧。
5.箭頭函數
箭頭函數不綁定自己的this,arguments,super。所以它不適合做方法函數,構造函數,也不適合用call,apply改變this。但它的特點就是更短,和解決匿名函數中this指向全局作用域的問題
函數的參數
1.傳入明確的參數
2.使用arguments對象
3.省略參數,參數默認值
4.對象參數
對象參數比較常見,常出現在jQuery插件,vue插件等中。
5.可選參數
ES5實現可選參數,我們需要使用arguments。使用指定範圍的可選參數我們一般使用發對象參數,寫過jQuery等插件的應該印象深刻。
6.ES6中的函數參數
在ES6中,參數默認值,省略參數操作使用比較簡便。示例代碼如下:
在ES6中,使用可選參數。示例代碼如下:
7.解構參數
函數的返回值
1.函數的返回值為基本數據類型,如字符串,數字,Boolean,null,undefined。示例代碼如下:
2.函數的返回值為對象。示例代碼如下:
不管是寫原生還是jQuery插件,亦或其他插件,這種情況都不少見。更深入的瞭解可以參考jQuery源碼。
3.返回值為函數
這個我們最為熟悉的莫過於閉包。具體可參考《老生常談之閉包》
參考文章
JS:How can you accept optional parameters?
Namedand Optional Arguments in JavaScript
Howto use optional arguments in functions (with optional callback)
閱讀更多 渡一教育web前端開發 的文章
關鍵字: jQuery 編程語言 JavaScript