JavaScript函数的参数

一、概述

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

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

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

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

// 带参数的函数调用
函数名(实参1, 实参2, 实参3); 
形参1 = 实参1
形参2 = 实参2
形参3 = 实参3
...

 

注意事项:

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

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

二、对位传参法

  1. 形参与实参是通过位置而不是参数名来匹配对应的
  2. 形参与实参的个数可以不一致
  3. 如果一个形参没有接收到实参传递来的值,那么他为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)

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值