函數(shù)就是一個方法或者一個功能體,函數(shù)就是把實(shí)現(xiàn)某個功能的代碼放到一起封裝
以后想要操作實(shí)現(xiàn)這個功能,只需要把函數(shù)執(zhí)行即可 =>"封裝"減少頁面中的冗余
代碼,提高代碼重復(fù)使用率(低耦合高內(nèi)聚)
// 創(chuàng)建函數(shù)
// ES5
function [函數(shù)名]([形參變量1],...){
// 函數(shù)體:基于JS完成需要實(shí)現(xiàn)的功能
return [處理后的結(jié)果];
}
[函數(shù)名]([實(shí)參1],...);
示例
//求兩數(shù)之和,算完后再乘以10,然后在除以2
// =>sum是函數(shù)名,代表這個函數(shù)本身
// =>sum()是讓函數(shù)執(zhí)行,代表的是函數(shù)執(zhí)行返回的結(jié)果
//=>n/m是形參,是變量,用來存儲執(zhí)行函數(shù)時傳遞的實(shí)參
// 創(chuàng)建函數(shù)的時候,設(shè)置了形參變量,但如果執(zhí)行的時候并沒有給傳遞對應(yīng)的實(shí)參,
// 那么形參變量默認(rèn)的值是undefined
function sum(n,m){
let result = n + m;
result *= 10;
result /= 2;
//console.log(result);
}
// console.log(sum); 輸出代表函數(shù)本身
// 10/20這是傳遞給形參變量的值(實(shí)參)
sum(); //NAN
sum(10); //NAN
sum(10,20); //150
sum(10,20,30);//150
// 形參默認(rèn)值處理;如果沒有傳遞形參值,給予一個默認(rèn)值
if(n === undefined){
n = 0;
}
if(typeof m === 'undefined'){ //更加常用
m = 0;
}
- 函數(shù)中的返回值
// 函數(shù)執(zhí)行的時候,函數(shù)體內(nèi)部創(chuàng)建的變量我們是無法獲取和操作的,
// 如果想要獲取內(nèi)部信息,需要基于return返回值機(jī)制把信息返回。
//沒有寫return,函數(shù)默認(rèn)返回值是undefined
function sum(){
let result = n + m;
// RETURN的一定是值:此處是把RESULT變量存儲的值返回給外面
return result;
}
sum(10,20);
//console.log(result);//=>Uncaught ...: result is not defined
如果有一個n/m不傳實(shí)參,那么不執(zhí)行的方法:
if(n === undefined || m === undefined){
// 函數(shù)體中遇到return,后面代碼則不再執(zhí)行
return;
}
Javascript Function有兩種類型:
1)函數(shù)聲明(Function Declaration);
// 函數(shù)聲明
function funDeclaration(type){
return type==="Declaration";
}
2)函數(shù)表達(dá)式(Function Expression)。
// 函數(shù)表達(dá)式
var funExpression = function(type){
return type==="Expression";
}
實(shí)際上,Javascript函數(shù)上的一個“陷阱”就體現(xiàn)在Javascript兩種類型的函數(shù)定義上