1. 函數可以嵌套在其他函數定義中,這樣這個函數就能訪問被定義時所處作用域內的任何變量,就形成了閉包
2. 函數名稱會作為函數內部的局部變量
3. 函數命名通常是以動詞或動詞為前綴的詞組,通常第一個單詞小寫,多個單詞可以使用_進行連接,或是多個單詞的首字母大寫:
like_this
likeThis
當涉及到私有函數或者內部函數可在字母首部加下劃線進行區分
4. 函數如果有return,則函數調用返回指定值,如果沒有return則返回undefined,沒有return的函數也可以稱為過程。
5. 函數可以通過語句聲明的形式定義或者以函數定義表達式形式定義。
function add (x, y) { return x + y;} // 語句聲明
let add = function (x, y) {return x + y;} // 函數定義表達式
兩者在功能和使用上一致,區別在于,語句聲明不能出現在除全局代碼和其他嵌套函數以外的地方,函數定義表達式不受這種限制。
6. 函數調用有四種形式:
函數調用
方法調用
構造函數調用
通過call和apply間接調用
函數調用:
函數定義時會存在一個形參列表,在函數調用時形參引用會指向實參列表,從而獲取參數值