JavaScript 函数参数_JS 函数


JavaScript 函数参数


JavaScript 函数,不会对参数值进行任何的检查。


一、函数参数的(Parameters)与参数(Arguments)

在教程中前面,我们已经学过函数显式的参数:

functionName(parameter1, parameter2, parameter3) {

   // 要执行的代码……

}

函数参数(parameter)是指在函数定义中列出的名称。

函数参数(argument)是指传送到函数或由函数收到的真实值。


二、参数规则

JavaScript 函数定义参数不会为(parameter)规定的数据类型。

JavaScript 函数对所传送的参数不会(argument)进行类型检测。

JavaScript 函数不会对所接收参数的(argument)数量的检测。


三、默认参数

在调用参数时省去了参数(少于未被声明的数量),即丢失的值被设置为:undefined。

有时这是可以接受的,有时候还是建议最好给参数指定一个默认值:

示例代码()

function myFunction(x, y) {

   if (y === undefined) {

         y = 0;

   }

}


演示一下

或更简单的方式:

示例代码

<p>设置一个函数参数的默认值。</p>

<p id="demo"></p>

<script>

function myFunction(x, y) {

   y = y || 0;

   return x * y;

}

document.getElementById("demo").innerHTML = myFunction(4);

</script>




如果y已定义 , y || 返回 y, 因为 y 是 true, 否则返回 0, 因为 undefined 为 false。

如函数调用的参数太多(超过声明),则可以用 arguments 对象来达到这样的参数。


四、arguments 对象

JavaScript 函数有一个名称为 arguments 对象的内置对象。

argument 对象包含了,函数调用时的参数数组。

经过这样的方式你很方便的找到最大一个参数的值:

示例代码

x = findMax(1, 123, 500, 115, 44, 88);

function findMax() {

   var i, max = arguments[0];

   

   if(arguments.length < 2) return max;

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

       if (arguments[i] > max) {

           max = arguments[i];

       }

   }

   return max;

}


演示一下

或创建一个函数的总和输入所有值:

示例代码

x = sumAll(1, 123, 500, 115, 44, 88);

function sumAll() {

   var i, sum = 0;

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

       sum += arguments[i];

   }

   return sum;

}


演示一下


五、值传递参数

函数的隐式参数是在函数中调用的参数。

JavaScript 的隐式参数是通过值来传递:函数仅此是获取的值。

如函数需要修改参数值,修改 不会显式参数的初始值(函数以外定义的)。

隐式参数改变在函数以外是不可见的。


六、对象传递参数

在JavaScript中,可引用对象的值。

因此,在函数修改内部的对象属性就会修改其初始的值。

修改对象属性,可用于函数外部全局变量。

对象属性修改在函数外是可见的。


Copyright © 2017 CSS5.NET教程.CSS5 内容仅用于学习和测试参考。 css5.net All Rights Reserved