javascript函数参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript函数参数相关的知识,希望对你有一定的参考价值。
js函数参数有显式参数(Parameters)即形参和隐式参数(Arguments)实参
1、显式参数(Parameters)即形参在函数定义时列出。
function functionName(parameter1, parameter2, parameter3){ //要执行的代码 }
2、隐式参数(Arguments)即实参在函数调用时传递给函数的真正的值
function add(){ console.log(arguments[0], arguments[1], arguments[2]); }
参数的个数
(1)当实参比比函数声明指定的形参个数少时,剩下的形参都将设置为undefined。
例:
function add(x, y){ console.log(x, y); } add(1);//1, undefined
(2)当实参比形参个数要多时,剩下的实参没办法直接获得,可以通过arguments对象来访问。在javascript中函数的参数在函数内部是用一个数组表示的。函数接收的始终都是这个数组,并不关心数组中包含哪些参数。而arguments是一个类数组对象,可以使用方括号语法来访问它的每一个元素。
例:
function add(x, y){ console.log(arguments[0], arguments[1], arguments[2]); } add(1, 2, 3);//1 2 3
arguments对象的length属性可以显示实参的个数,函数的length属性则显示形参的个数。
例:
function add(x, y){ console.log(arguments.length);//3 } add(1, 2, 3); console.log(add.length);//2
形参可以提供便利,但不是必须的。
function add(){ console.log(arguments[0] + arguments[1]); } add(1, 2);//3
实参与形参同步
当形参与实参个数相同时,arguments对象的值和对应形参的值保持同步,但命名空间独立。
例:
function test(num1, num2){ console.log(num1, arguments[0]);//1 1 arguments[0] = 2; console.log(num1, arguments[0]);//2 2 num1 = 10; console.log(num1, arguments[0]);//10 10 } test(1);
在严格模式下,arguments对象的值和形参都是独立的。
例:
function test(num1, num2){ ‘use strict‘; console.log(num1, arguments[0]);//1 1 argument[0] = 2; comnsole.log(num1, arguments[0]);//1 2 num1 = 10; console.log(num1, arguments[0]);//10 2 } test(1);
当形参并没有对应的实参时,arguments对象的值与形参的值并不对应。
例:
function test(num1, num2){ console.log(num1, arguments[0]);//undefined, undefined num1 = 10; arguments[0] = 5; console.log(num1, arguments[0]);//10, 5 } test();
对象参数
当一个函数包含超过3个形参时,要记住调用函数中实参的正确顺序是一件很繁琐的事情,可以通过值对的形式来传入参数。
以上是关于javascript函数参数的主要内容,如果未能解决你的问题,请参考以下文章