好程序員web前端分享函數做用域及遞歸

做用域的生命週期。javascript

 

var a = 10;html

 

function m1(){ java

    var a = 5;函數

    alert(a);htm

}遞歸

 

形參(形式參數)與實參(實際參數)的重要區別生命週期

 

var a = 10;ip

 

var x=0;utf-8

 

function fn(x){作用域

 

    x =a + 10;

 

}

 

fn (a);

 

遞歸的用法

 

什麼是遞歸?

 

自身調用自身!

 

function pr(){

 

    return pr()

 

}

 

關鍵點:

 

1.終止條件

 

2.運算規則

 

function pr(n){

      

     if(n==1){  // 終止條件

          return n;

     }

 

     return pr(n-1)+n;    

 

}

 

打印任意個hello world;

 

function pr(n){

 

    if(n==0){

        return

    }

 

    document.write('hello world!!<br>');

 

    return pr(n-1);

 

}

pr(10)

案例:求n個數字的和,5 計算1+2+3+4+5

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title></title>

</head>

<body>

 

</body>

<script type="text/javascript">

//函數的聲明

function getSum(x) {

if (x == 1) {

return 1;

}

return x + getSum(x - 1);

}

//函數的調用

console.log(getSum(5));

</script>

</html>

  

案例:輸出斐波那契額數列數列的前20項(遞歸)

 

斐波那契數列指的是這樣一個數列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title></title>

</head>

<body>

 

</body>

<script type="text/javascript">

function fib(n) {

if (n == 1 || n == 2) {

return 1

}

return fib(n - 1) + fib(n - 2)

}

for (var i = 1; i <= 20; i++) {

document.write(fib(i) + '<br>')

}

</script>

</html>
相關文章
相關標籤/搜索