JavaScript 函数参数
JavaScript 函数参数
JavaScript 函数不会对参数值进行任何检查。
函数参数
在本教程中稍早的时间,您已经学到了函数可以拥有参数:
functionName(parameter1, parameter2, parameter3) {
要执行的代码
}
函数参数(parameter)指的是在函数定义中列出的名称。
函数参数(argument)指的是传递到函数或由函数接收到的真实值。
参数规则
JavaScript 函数定义不会为参数(parameter)规定数据类型。
JavaScript 函数不会对所传递的参数(argument)实行类型检查。
JavaScript 函数不会检查所接收参数(argument)的数量。
参数默认
如果调用参数时省略了参数(少于被声明的数量),则丢失的值被设置为:undefined。
有时这是可以接受的,但是有时最好给参数指定默认值:
示例代码:
function myFunction(x, y) {
if (y === undefined) {
y = 0;
}
}
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>将默认值设置为函数参数</h1>
<p id="demo"></p>
<script>
function myFunction(x, y) {
if (y === undefined) {
y = 0;
}
return x * y;
}
document.getElementById("demo").innerHTML = myFunction(4);
</script>
</body>
</html>
运行结果:
将默认值设置为函数参数 0
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
如果函数调用的参数太多(超过声明),则可以使用 arguments 对象来达到这些参数。
arguments 对象
JavaScript 函数有一个名为 arguments 对象的内置对象。
arguments 对象包含函数调用时使用的参数数组。
这样,您就可以简单地使用函数来查找(例如)数字列表中的最高值:
示例代码:
x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
var i;
var max = -Infinity;
for (i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>找到最大的数字</h1>
<p id="demo"></p>
<script>
function findMax() {
var i;
var max = -Infinity;
for(i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
document.getElementById("demo").innerHTML = findMax(4, 5, 6);
</script>
</body>
</html>
运行结果:
找到最大的数字 6
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
或创建一个函数来总和所有输入值:
示例代码:
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;
}
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>所有参数的总和:</h1>
<p id="demo"></p>
<script>
function sumAll() {
var i;
var sum = 0;
for(i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
document.getElementById("demo").innerHTML = sumAll(1, 123, 500, 115, 44, 88);
</script>
</body>
</html>
运行结果:
所有参数的总和: 871
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
参数通过值传递
函数调用中的参数(parameter)是函数的参数(argument)。
JavaScript 参数通过值传递:函数只知道值,而不是参数的位置。
如果函数改变了参数的值,它不会改变参数的原始值。
参数的改变在函数之外是不可见的。
对象是由引用传递的
在 JavaScript 中,对象引用是值。
正因如此,对象的行为就像它们通过引用来传递:
如果函数改变了对象属性,它也改变了原始值。
对象属性的改变在函数之外是可见的。