-函数自调用:函数在内部可以调用其本身
函数自调用很容易发生"栈溢出"错误(stack overflow),首页必须要加退出条件return
function fn() {
fn()
}
fn()
- 函数自调用可以实现循环的作用
var n=1
function fn() {
console.log(n)
if (n==6) {
return
}//必须要有跳出自调用的条件,这里是n为6时结束自调用
n++;
fn()
}
fn()
/* for(n=1;n<7;n++){
console.log(n)//与for循环效果一样
} */
- 用函数自调用遍历数组比for循环简单,因为不知道数组的嵌套多少层,for循环一层层遍历下去很麻烦
var arr=[[16,[2,3,4,5]],[4,54,2,6],[23,45,[34,6,7,3]]]
function fn(arr){
for(var i=0;i<arr.length;i++){
if(typeof(arr[i])=="number"){
console.log(arr[i])
}else{
fn(arr[i])
}
}
}
fn(arr)