函數(shù)數(shù)據(jù)類型
函數(shù)數(shù)據(jù)類型也是按照地址來操作的
函數(shù): 具備一定功能的方法
// 創(chuàng)建函數(shù): 相當于生產(chǎn)了一臺洗衣機
function 函數(shù)名(){
// -> 函數(shù)體: 實現(xiàn)某一個功能的具體js代碼
}
// 執(zhí)行函數(shù): 相當于使用洗衣機洗衣服(如果函數(shù)創(chuàng)建了但沒有執(zhí)行,函數(shù)沒有任何意義)
函數(shù)名()
function fn(){
console.log(1+1);
}
fn // 輸出函數(shù)本身
fn() // 2 把函數(shù)執(zhí)行(把函數(shù)體中實現(xiàn)功能的代碼執(zhí)行)
聲明的這個函數(shù)名和我們之前聲明的變量名沒有任何區(qū)別(function fn()和var fn沖突)
空間中存儲的是函數(shù)體中的代碼,但是此時的代碼都是字符串中的字符而已
函數(shù)只創(chuàng)建而不執(zhí)行沒有意義:因為空間中存儲的都是毫無意義的字符串
fn() 函數(shù)執(zhí)行:把函數(shù)體中的代碼執(zhí)行
瀏覽器創(chuàng)建一個供函數(shù)中代碼執(zhí)行的私有環(huán)境 -> 私有作用域
把創(chuàng)建時候空間中存儲的字符串拿來,然后變成真正的js表達式代碼,然后執(zhí)行
// -> 形參:形式參數(shù),函數(shù)的入口
// -> 當我們創(chuàng)建一個函數(shù)想要實現(xiàn)某個功能的時候,
// -> 發(fā)現(xiàn)有一些材料并不清楚,只有當函數(shù)運行的時候,
// -> 別人傳遞給我我才知道,此時我們就需要設定入口,
// -> 讓用戶執(zhí)行的時候通過入口把值給我們
function fn(num1,num2){
console.log(num1+num2)
}
fn(1,2) // -> 3
fn(2,3) // -> 5