JavaScript函数和递归

1 函数的两种使用方式:第一函数声明,第二函数表达式,写法如下:

<script>
function test1(){
//函数的声明
alert("test1");
}
test1();
var test2=function(){
//函数表达式
alert("test2");
};
test2();
</script>
区分函数声明和函数表达式:最重要的是理解函数声明的提升,即在执行代码前先会读取函数的声明,意外着可以把函数的声明放到函数的调用之后,并不会报错。然而对于函数表达式不行。

2 递归

三种递归的方式:

1常见的写法:

function test(num){
if(num<=1){
return 1;
}else{
return num+test(num-1);
}
}
var anothertest=test;//
test=null;//这两行代码会导致上诉的递归函数调用错误
2 arguments.callee()是一个指向正在执行的函数的指针,可用它实现递归
function test(num){
if(num<=1){
return 1;
}else{
return num+arguments.callee(num-1);
}
}
这种写法在非严格模式下没问题。

3严格模式下的递归调用(非严格也行)

<script>
var test1=(function test(num){
if(num<=1){
return 1;
}else{
return num+test(num-1);
}
});
alert(test1(4));
</script>

通过创建一个test()命名函数表达式。

参考js高级编程3


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值