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函数参数的主要内容,如果未能解决你的问题,请参考以下文章

10个JavaScript代码片段,使你更加容易前端开发。

10个JavaScript代码片段,使你更加容易前端开发。

jQ选择器学习片段(JavaScript 部分对应)

几个关于js数组方法reduce的经典片段

vs code 自定义代码片段

VSCode自定义代码片段12——JavaScript的Promise对象