以下為本人學習js中總結的概念和技術,有錯請歡迎指正
首先,我們來確定一下什么是函數?函數的概念是什么?
函數就一個代碼塊,在函數里面封裝了可以實現某個功能的模塊,在需要的時候,可以直接執行,也可以被行為調用。
那么為什么要封裝成函數,意義在哪呢?
一個被封裝好的函數可以無限次的使用,也可以選擇使用,而且不需要再次實現內部的細節,這無疑在開發的時候給我們節省了很多的時間,也減少的了冗余代碼。
- 選擇使用
- 重復使用
- 忽略細節
函數如此便利,那么函數又是如何去創建?
- 聲明式
function fn () {}這就是一個完整的函數聲明,function為函數聲明的關鍵字,這個不用理解,fn是函數名,()放置參數,{}被封裝的函數體
- 賦值式
var s = function () {} 直接省去了變量名
函數的調用:
- 直接執行
fn(); ---->fn為函數名(注意:可以先理解一下fn()()(),多個括號表達的什么意思)
2.事件調用---->fn為函數名
var box.onclick = fn;
var box.onclick = function(){}
var box.onclick = function(){fn();}
函數的參數:
函數的參數又分為兩種,實參和形參。
- 形參:形參是指函數在定義的時候的參數,如function fn(a,b,c) {}
- 實參: 實參是指函數在調用的時候的參數,如fn(1,2,3);
那么如果出現了定義的形參和傳入的實參個數出現出入,那么實參和形參又是怎么對應的?這又要分成三種情況
- 實參個數大於形參個數,取實參與實參的對於部分,多余的實參暫且不管,下面會提到一個arguments的概念
- 實參個數等於形象個數,一一對應
- 實參個數小於形參個數,取對於的實參部分
在這補充一個arguments的知識點
上面提到了當時實參個數大於形參的時候,多余的實參怎么處理?其實函數傳入的所有的實參都被傳入了arguments對象中,當實參的個數多與形參的時候,如果我們想找到之前被傳入的多余的部分,可與去arguments中去找。
更新中...