JavaScript简餐——细看函数的参数

本文是《JavaScript简餐》系列的一部分,旨在深入理解JavaScript中的参数,包括常规函数和箭头函数中的参数用法,帮助读者轻松掌握这一核心概念。
摘要由CSDN通过智能技术生成


前言

写本《JavaScript简餐》系列文章的目的是记录在阅读学习《JavaScript高级程序设计(第4版)》一书时出现的各个知识点。虽是对读书的笔记和总结,但是希望它轻量、简洁、犀利,不会引起阅读疲劳,可以在碎片化时间和闲暇之余轻巧地沐浴一下知识点。每篇文章只针对一个小部分进行讲解式的梳理,来达到个人复习总结和分享知识的目的。


一、理解参数

  JavaScript中的参数和大多数其他语言都不太一样。函数既不关心传入的参数个数,也不关心这些参数的数据类型。比如你定义函数时要接收一个参数,这并不意味者调用时就得传一个参数。你传一个、两个、三个参数都可以,是不会报错的。之所以会这样,主要是因为ECMAScript函数的参数在内部表现为一个数组。函数被调用时总会接收一个数组,但函数并不关心这个数组中包含什么。如果数组中什么也没有或者数组元素数量超出了函数所要求的参数个数,这都没有问题。当我们在使用function关键字定义函数时,可以在函数内部访问arguments对象,从中取得传进来的每个参数值。   arguments对象是一个类数组对象(但不是Array的实例),因此可以使用中括号语法访问其中的元素。比如第一个参数就是arguments[0],第二个参数就是arguments[1]。而要确定传进来多少个参数可以访问arguments.length属性。话不多说,直接上代码:
function add(x, y) {
   
  console.log(`一共传进来${
     arguments.length}个参数哦。`); // 一共传进来2个参数哦。
  return arguments[0] + arguments[1]; 
}
console.log(add(2, 3)); // 5
这里的arguments[0]和arguments[1]就对应着函数参数中指定的x和y。调用函数时传了2和3两个参数,我们也可以看到arguments.length确实是2。 那这时候我们可能会突然有个大胆的想法,我不在function后面的括号里写形参了可不可以???当然可以!来看一下:
function sub() {
   
  return arguments[0] - arguments[1];
}
console.log(sub(5, 3)); // 2
可见,依然可以拿到参数来进行运算。这就表明,ECMAScript函数的参数只是为了方便才写出来的,并不是必须写出来的。与其他语言不同,在ECMAScript中的形式参数不会创建让之后的调用必须匹配的函数签名。这是因为根本不存在验证形式参数的机制。 arguments对象另一个有意思的地方就是,它的值始终会与对应的形参同步。来看下面的例子:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值