1. 函数参数
形参:形式参数,声明函数的时候写在小括号里面的参数,无需var
实参:实际参数,在函数调用的时候需要传递实际有值得参数
实参个数大于形参,多余实参自动舍弃
形参个数大于形参,多余形参默认为undefined
2. 实参副本arguments:
可以在函数内部使用arguments接收所传递过来的参数,是一个集合
案例://遍历求和 function calc(){
var sum=0;
for (var i=0;i<arguments.length;i++) {
document.write(sum); //arguments.length 是存储在arguments中的个数;
sum += arguments[i]; //arguments[i] 指第i个值 默认从0开始存储。
document.write("<br/>")
}
document.write(sum);
}
calc(1,2,3,4,5,6,7,8,9,6,5,4,2,4,45);
3. return关键字
1.结束函数的执行
2.交回函数执行权
3.返回一个结果到全局
4. 递归阶乘 (消耗内存,容易造成栈溢出等问题!)
function diGui(b){
if (b===1) {
return 1;
}else{ return diGui(b-1)*b; }
}
console.log(diGui(5))
5.堆栈
1. 栈( Stack):先进后出(FILO),在栈顶做插入(压栈)和删除操作(出栈)。
2. 队列:先进先出(FIFO),在队头做删除操作,在队尾做插入操作。
6. 编写函数实现:两个数平方的阶乘相加的和
//要求:三个函数实现,一个求阶乘,一个求平方,第三个函数利用这两个函数求出最终结果
//求阶乘函数
function jie(m){
var sum=1;
for (var i=1;i<=m;i++) {
sum *= i;
}
return sum;
}
//求平方的函数
function pFang(p){
return Math.pow(p,2)
}
//求和的函数
function addAll(m,n){
return pFang(jie(m))+pFang(jie(n))
}
document.write(addAll(1,3))