JavaScript函数的参数

    xiaoxiao2025-02-07  48

    一、概述

    函数的参数分为形参实参。

    形参:在声明一个函数的时候,为了函数的功能更加灵活,有些值是固定不了的,对于这些固定不了的值。我们可以给函数设置参数。这个参数没有具体的值,仅仅起到一个占位置的作用,我们通常称之为形式参数,也叫形参

    实参:如果函数在声明时,设置了形参,那么在函数调用的时候就需要传入对应的参数,我们把传入的参数叫做实际参数,也叫实参

    // 函数内部是一个封闭的环境,可以通过参数的方式,把外部的值传递给函数内部 // 带参数的函数声明 function 函数名(形参1, 形参2, 形参3...) { // 函数体 } // 带参数的函数调用 函数名(实参1, 实参2, 实参3); 形参1 = 实参1 形参2 = 实参2 形参3 = 实参3 ...

     

    注意事项:

    函数最终的运算结果由实参所解决定;

    不论形参还是实参,都不需要关键字“var”的显示声明,函数的参数只能在函数内部访问。

    二、对位传参法

    形参与实参是通过位置而不是参数名来匹配对应的形参与实参的个数可以不一致如果一个形参没有接收到实参传递来的值,那么他为undefined var x = 5, y = 6; fn(x,y); function fn(a, b) { console.log(a + b); } // x,y实参,有具体的值。函数执行的时候会把x,y复制一份给函数内部的a和b,函数内部的值是复制的新值,无法修改外部的x,y

    三、对象传参法

    当参数非常多时,想要不在通过位置来匹配参数,想让参数具有确定性,那么可以使用对象作为参数,然后就可以通过属性名key来匹配。

    function fn(obj) { console.log(obj.name,obj.sex,obj.age) } var obj = { name:'张飞', sex:'男', age:88 } fn(obj) // 张飞 男 88

    四、参数默认值

    1、es5: 三目运算符,逻辑或运算符

    三目运算符

    function fn(a, b) { a = (a == undefined ? 0 : a); b = (b == undefined ? 1 : b); console.log(a, b) } fn() // 0,1 fn(5,6) // 5,6

    逻辑或运算符

    function fn(a,b) { a = a || 'aa'; b = b || 'bb'; console.log(a, b) } fn() //aa bb fn(5,6) //5 6

    缺点:对于0.-0,null,"",undefined,NaN...逻辑运算结果全为false

    2、es6:  在参数列表里面赋值

    function fn(a = 0, b = 0) { console.log(a + b) } fn() // 0 fn(5, 6) // 11

    五、arguments

    arguments代表了一个函数的所有参数,他是一个类似数组的东西,可通过下标取值。在我们不知道具体的参数个数时,他尤为有用。

    他是一个类似数组的东西

    可以通过下标取值

    arguments[0]就是第一个参数,arguments[1]就是第二个参数

    将arguments转换为一个数组

    方法一:Array.prototype.slice.call(arguments)

    可通过数组原型上得slice方法截取arguments中所有的内容,然后作为一个数组返回,如下:

    方法二:Array.from(arguments)

    最新回复(0)