1. 程式人生 > 其它 >js中的函式

js中的函式

技術標籤:jsjavascript

函式

作用:

  • 簡化程式碼
  • 方便維護
  • 提高開發效率
  • 提高了程式碼的複用性,減少程式碼冗餘

格式:

function 函式名(引數...{
         函式執行的程式碼
                }  
//【注意】函式先定義後呼叫

分類:
1.內建函式(官方提供的函式,系統自身擁有函式);

alert();//彈出
document.write();//輸出在網頁中
console.log();//輸出在控制欄
parseInt();//取整
parseFloat();//可以顯示出浮點數

2.自定義函式
根據引數和返回值的不同,可將函式分為四種。

  • 無引數無返回值
        function sum() {
            var sum = 0;
            for (var i = 1; i <= 100; i++) {
                sum += i;
            }
            alert(sum);
        }
        sum();//呼叫

在這裡插入圖片描述

  • 有引數無返回值
    形參 形式上引數
    實參 實際引數
        // 求1-n的和,將結果輸出到頁面。
        function sum(n) {
            var sum = 0;
            for
(var i = 1; i <= n; i++) { sum += i; } document.write(sum); } sum(100);

在這裡插入圖片描述

  • 無引數有返回值
 // 求1-100的和,將結果輸出到頁面。
        function sum() {
            var sum = 0;
            for (var i = 1; i <= 100; i++) {
               sum += i;
            }
            return
sum; // document.write(sum); } // 1.呼叫,將結果彈出 var a = sum(); // alert(a); // 2 呼叫,將結果輸出到頁面上 document.write(a); // 3.呼叫 將結果輸出到控制檯。 console.log(a); // 返回值:對函式執行完成的結果的返回。 // return:結束當前函式,並將return後面的值(表示式/變數)作為函式的執行結果返回。 // 當我們需要對函式的運算結果進行不同的處理時,需要將函式的結果返回。

在這裡插入圖片描述

  • 有引數有返回值
function sum(n) {
            var sum = 0;
            for (var i = 1; i <= n; i++) {
               sum += i;
            }
            return sum;
            // document.write(sum);
        }
       
        // 1.呼叫,將結果彈出
        var a = sum(100);
        // alert(a);
        // 2 呼叫,將結果輸出到頁面上
        document.write(a);
        // 3.呼叫 將結果輸出到控制檯。
        console.log(a);

封裝函式
1.確定函式的執行程式碼:函式體。
2.找出變數(不確定值。),將其設定為形參
3.如果需要對返回結果進行不同的處理,則定義返回值。


//示例:將陣列 ["蘇軾", "辛棄疾", "李白"],用"|"連線起來
        var arr = ["蘇軾", "辛棄疾", "李白"];
        function joint(arr) {
            var str = "";
            for (var i = 0; i <= arr.length - 1; i++) {
                str += arr[i];
                if (i == arr.length - 1) continue
                str += "|";
            }
            return str;
        }
        alert(joint(arr));

arguments
arguments是用來儲存實參。

         function joint() {
            var str = arguments[0];
            for (var i = 1; i < arguments.length; i++) {
                str = str + "|" +arguments[i];
            }
            document.write(str);
         }
         joint("蘇軾","辛棄疾","李白","李商隱","杜甫");//可以一直新增都會用“|”連線起來

作用域
作用域:變數存在的範圍
全域性變數:

  • 直接寫在Script標籤中的變數,在頁面中的任意位置都可以訪問到。
  • 在頁面開啟建立,在頁面關閉時銷燬。

區域性變數:

  • 區域性變數是定義在函式內部的變數.這個變數只能在函式內使用.例外,函式中的形參也是區域性變數.
  • 每一次呼叫時建立,呼叫結束會銷燬。

【注意】:

  • 如果區域性變數與全域性變數重名,則使用區域性變數。若函式內部沒有找到該變數,則去全域性變數中查詢。

遞迴
函式之間可以互相呼叫,如果函式內部呼叫了其自身,則我們稱其為遞迴呼叫。
特點:

  • 函式自己呼叫自己。
  • 一般情況下還有引數。
  • 一般情況下有返回值。

方法:

  • 找這一次計算與上一次計算的關係。
  • 呼叫自身
  • 找到函式結束的條件。
        //示例: 求n的階乘
        function fac(n) {
             if (n==1) {
                 return n;
             }
             return n*fac(n-1);
        }
//示例:設有一對新生兔子,從第四個月開始每個月初都會生一對兔子,新生的兔子從第四個月開始也會每個月初生一對兔子,按照這個規律,假設兔子沒有死亡,n(n<=20)個月月末後共有多少對兔子。
         function rabbit(n) {
             if (n<4) {
                 return 1;
             }
             return rabbit(n-1)+rabbit(n-3);//可獲得規律,本月成熟兔:上個月的成熟兔+上上上個月的成熟兔 
         }
         alert(rabbit(9));