JavaScript之 ------ 函數(一般函數、動態函數、匿名函數)

來源:互聯網
上載者:User

JavaScript之 ------ 函數(一般函數、動態函數、匿名函數)

函數

 

一、一般函數

 

1、格式:

function 函數名(形式參數...)

{

執行語句;

return 傳回值;

}

函數是多條執行語句的封裝體,只有被調用才會被運行。

注意:調用有參數的函數,但沒有給其傳值,函數一樣可以運行,或者調用沒有參數的函數,給其傳值,該函數也一樣運行。

說的簡單點:只要寫了函數名後面跟了一對小括弧,該函數就會運行。

 

2、函數雖然定義時是聲明成兩個參數,但調用時卻是可以傳入任意個

例:

function show(x,y){     alert(x+:+y);     }
show(4,8); 結果:4:8

 

show(4);結果:4:undefined

show(); 結果:undefined:undefined

show(4,8,89); 結果:4:8

綜上的例子,Js當中的函數是不存在重載的。如果有,一定就通配所有的了。

 

3、每個函數中,存在一個 預設的數組arguments ,裡面儲存著本次調用時傳入的所有實參

 

function show2(x,y){     for(var i=0; i
結果:1 2 3 45

 

 

4、函數在調用時的其他寫法
<script type=text/javascript>      function getSum(){      return 100;      }      var sum = getSum();     // alert(sum); //結果:100         var sum2 = getSum; //相當於java當中的 引用捆綁      //alert(getSum); //結果:getSum.toString()      // alert(sum2); //結果:sum2.toString(),也就是getSum.toString()      //alert(sum2()); //等價於調用:getSum()            function show2(){      alert(kkkl);      }      alert( show2() ); //先彈出“kkkl”,再彈出“undefined”。因為裡面的函數沒有return值,而外面的函數要用變數去接,結果相當於變數沒賦值就輸出         </script>


 

二、動態函數

 

利用Js當中內建的對象Function來構造一個函數,構造方法中的第1個參數是“形參”,第2個參數是“函數體”。

該思想類似於Java當中的類反射。我們平時寫函數時通常不用,但關鍵的地方一寫,整個程式的功能會變得很活。

 

var add = new Function(x,y, var sum; sum=x+y;return sum;);var s = add(100,39);alert(s=+s);

 

 

三、匿名函數

 

格式:function(){...}

例:

var demo = function(){...}demo();

 

通常在定義事件屬性的行為時較為常用。

例:

 

function test(){alert(“load ok”);}window.onload = test;

 

可以寫成匿名函數的形式:

 

window.onload = function(){alert(“load ok”);}

 

匿名函數就是一種簡寫格式。


四、函數調用

function.js

 

      //1 取最大值:輸出給定數組當中值最大的元素      //函數定義      function getMax(arr){      var max=0;//記下標      for(var x=1; xarr[max]){      max = x;      }      }      return arr[max];      }                //2 數組排序      //函數定義      function sortArray(arr){      for(var x=0; xarr[y]){      swap(arr,x,y);      }      }      }      }      //輔助函數,用於交換數組中的兩個元素      function swap(arr,x,y){      var temp = arr[x];      arr[x] = arr[y];      arr[y] = temp;      }                 //3 類比Java當中的System.out.println()      function println(str){      document.write( str +);      }                  //4 在數組當中尋找元素(若存在則返回該元素的位置,否則返回-1)      function searchElement(arr,key){      for(var x=0; x>1;      if(key>arr[mid]){      min=mid+1;      }else if(key調用:
<script type=text/javascript src=functions.js>    </script><script type=text/javascript>       //1 函數調用      var arr=[133,-22,33,43,1211];      var mValue = getMax(arr);      //alert(mValue=+ mValue);          //2函數調用      document.write(排序前:+arr +
); // println(arr); sortArray(arr); document.write(排序後:+arr); //3 函數調用 println(); println(arr); //4 函數調用 var a=searchElement(arr,133); //alert(a); //5 函數調用 var b=binarySearch(arr,-2); //alert(b); //6 函數調用 reverseArray(arr); println(arr); </script>



 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.