JavaScript 函數參數

JavaScript 函數參數

JavaScript 函數允許沒有參數(但包含參數的小括號不能省略),也可以傳遞參數給函數使用給函數。

下面的範例中,就向 hello() 函數傳遞了 name 和 age 參數,參數值分別是 小明 和 18。

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>php中文网(php.cn)</title> 
    <script type="text/javascript">  
       function hello(name,age){
         document.write("我叫" + name + ",今年" + age + "岁!");
         }
    </script>  
</head>  
<body>  
   <input type="button" onclick="hello('小明',18)" value="确定" />
</body>  
</html>

JavaScript 函數參數錯誤

JavaScript 函數參數並沒有嚴格要求哪些參數是必選參數,哪些參數是可選參數,因此傳入的參數數量是允許不等於定義函數時參數的個數的。

如果函數中使用了未定義的參數,則會提示語法錯誤(參數未定義),JavaScript 程式碼不會正常運作。

如果參數已經定義,但未正確的傳入參數時,相關參數值會被undefined 替換,JavaScript 程式碼仍正常運行,如下例所示:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>php中文网(php.cn)</title> 
    <script type="text/javascript">  
       function hello(name,age){
          document.write("我叫" + name + ",今年" + age + "岁!");
         }
    </script>  
</head>  
<body>  
   <input type="button" onclick="hello('小明')" value="确定" />
</body>  
</html>

#JavaScript arguments 物件

在JavaScript 函數中,有一個特殊的arguments 對象,它以類似陣列的形式保存了目前函數呼叫的參數。因此,開發者無需定義具體的參數名,就可以方便的存取函數參數:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>php中文网(php.cn)</title> 
    <script type="text/javascript">  
       function hello(){
        document.write("我叫" + arguments[0] + ",今年" + arguments[1] + "岁!");
      }
    </script>  
</head>  
<body>  
  <input type="button" onclick="hello('小明',18)" value="确定" /> 
</body>   
</html>

在arguments 物件中,arguments[0] 表示第1個參數,arguments[1] 表示第2個參數,依次類推。

提示:

通常在函數定義中,為方便程式碼的可讀性,一般不會使用 arguments 物件。在處理不定數目的參數,或模擬函數重載時,可方便的使用 arguments 物件來處理。

偵測參數個數

使用 arguments 對象,可以很方便的偵測函數的參數數目。 arguments 的length 屬性,即arguments.length 就是參數的個數:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>php中文网(php.cn)</title> 
    <script type="text/javascript">  
       function hello(){
        document.write(arguments.length);
      }
    </script>  
</head>  
<body>  
  <input type="button" onclick="hello('小明',18)" value="确定" />  
</html>


1. Js函數可以傳入不同的參數,如

function writeNString(strMsg){

document.write(strMsg + "<br>");

}

#2. Js函數傳回值,js函數可以將運行的結果傳回,函數可以視為一個黑盒子,使用參數輸入資料後產生所需的運行結果,如

function one2N(intnumber){

#var intTotal = 0;

for(var i=0;i< =intnumber;i++){

    intTotal +=i;}

return intTotal;

#}

3. Js函數的傳值和傳址參數

傳值:只是將變數的值傳入函數,函數會另外配置記憶體保存參數值,所以並不會改變原變數的值。

傳址:將變數實際儲存的記憶體位置傳入函數,所以如果在函數中變更參數的值,也會同時變動原參數的值。

數字、字串和布林--傳值

物件、陣列與函數--傳址

##字串物件--- -傳址

4. Js函數的參數數組

Js的函數都擁有一個參數數組(Arguments Array)對象,叫做arguments對象。當呼叫函數傳入參數時,函數即使沒有指明參數名稱,也一樣可以使用參數陣列的物件來取得參數的數量和個別的參數值。

function sumInteger(){

   var total = 0;

  for(var i=0; i<sumInteger.arguments.length;i++){

       total += sumInteger.arguments[i];

   .

##     return total;

#}

//呼叫函數

#inntotal = sumInteger(100,45,567,234);

document.write("函數sumInteger(100,45,567,234):"+inttotal+"<br>");

5. JS函數的變數範圍JS函數有兩個變數:

局部變數(local Variables)在函數內宣告的變數,變數只能在函數內的程式行內使用,函數外的程式碼並無法存取此變數。

全域變數(Global Variables)在函數外宣告的變量,整個JS程式的函數和程式碼都能存取此變數。

繼續學習
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> <script type="text/javascript"> function hello(name,age){ document.write("我叫" + name + ",今年" + age + "岁!"); } </script> </head> <body> <input type="button" onclick="hello('小明')" value="确定" /> </body> </html>