好程式設計師web前端分享函式作用域及遞迴
阿新 • • 發佈:2019-06-04
作用域的生命週期。
var a = 10;
function m1(){
var a = 5;
alert(a);
}
形參(形式引數)與實參(實際引數)的重要區別
var a = 10;
var x=0;
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