函数
//function 提升(在var之前)
//var 变量提升
fn(); //会打出666,因为function提升到代码块最前面。
function fu(){
alert(666);
};
// console.log(c); 控制台报错,因为c没有声明。
console.log(a); //控制台打印 undefined ,表示a空间已经声明未赋值。
var a = 10; //var 声明a这个变量空间会提升到代码块最前面。
<script type="text/javascript">
function fm(num){
if(num>0){
return num+fm(num-1);
}
else{
return num;
}
}
console.log(fm(4));
</script>
<script type="text/javascript">
function fm(num){
if(num>1){
return num*fm(num-1);
}
else{
return num;
}
}
console.log(fm(3));
</script>
return
- 返回值
- 遇到return就结束函数,无论后面是否还有代码。
作业
- 阶乘 加减
- 多参和
- 3d彩票
- 2a^2+20 前十项和 fn(10)
形参和实参
function fn(num1,num2){
//var num1;
//var num2;
console.log(num1);
console.log(num2);
}
fn(10); //不报错,显示10 undefined
function fn(num1,num2){
console.log(arguments[0]);
console.log(arguments[1]);
console.log(arguments[2]);
}
fn(10,20,30); //可以输出三个值,不会报错,如果没有第三个参数,arguments[2]输出undefined
(function(n){
if(n > 1)
return n* arguments.callee(n-1); //函数中调用自己
return n;
})(10); //匿名函数实现阶乘