寫在最前面
函數(shù)
- 定義
- 函數(shù)聲明
- 函數(shù)表達式
- 組成形式
- 函數(shù)名稱
- 參數(shù)
- 形參
- 實參
- 返回值
//函數(shù)聲明
//第一種
function box(參數(shù)){
//內(nèi)容
};
//第二種叫命名函數(shù)表達式
var box = function test(參數(shù)){
//內(nèi)容
}
box.name-->test
//第二種寫法function后面就成了表達式,有沒有名字無所謂,所以延伸出了第三種寫法
//第三種叫匿名函數(shù)表達式-->函數(shù)表達式
var box = function (參數(shù)){
//內(nèi)容
}
box.name -->box
//函數(shù)執(zhí)行
box();
參數(shù)
//形式參數(shù)-->形參
function test(a,b){
var c= a+b
console.log(c);//等于3
}
//實際參數(shù)--實參
test(1,2);
//不定參數(shù) 例子一
function test(a){
//a 就等于1
//2,3不用管
隱式的方法arguments[1,2,3]實參列表
找到多余的實際參數(shù)
}
test(1,2,3);
//不定參數(shù) 例子二
function test(a,b,c,d){
//a 等于1
//b 等于2
//c 等于3
//d 等于undefined
找到形參的長度sum.length
}
test(1,2,3);
//不定參的好處
var result
function sum(){
for(var i = 0; i<arguments.length){
resuit += arguments[i];
i++;
}
console.log(result);
}
sum(1,2,3,4,5,6,7,8,9)
function sum(a,b){
a = 2;
console.log(arguments[0]);//打印出2,參數(shù)a改變了
}
sum(1,2);
function sum(a,b){
a = 2;
arguments[0] = 3
console.log(arguments[0]);//打印出3,參數(shù)a改變了,可以相互改變
}
sum(1,2);
//JS的映射規(guī)則
function sum(a,b){
b = 2;
arguments[1];
console.log(arguments[0]);
}
sum(1);
//JS的映射規(guī)則
打印出undefined,實參列表傳進來的時候他就有幾個,就算我讓b等于2,它也不會往arguments里面加了,因為他根本就沒有,這個時候b就當(dāng)一個變量用了,他跟實參不映射,因為形參比實參多了一位b,只有他們相等的時候他們才會有映射的規(guī)則,不相等的時候, 形參多了他不對應(yīng)實參了,他們之間不映射缰猴。
結(jié)束條件加返回值return
- 結(jié)束函數(shù),如果沒有寫,系統(tǒng)默認自帶return
- 把值返回到函數(shù)外部
function sum(){
return 123
}
var box = sum();-->返回123