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程序的函数和程序代码都能访问此变量。


Weiter lernen
||
<!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>
einreichenCode zurücksetzen