当前位置: 首页 > article >正文

HTML - Javascript - JS可变参数函数

HTML - Javascript - JS可变参数函数

Javascript作为一个非常灵活的语言,肯定能有办法让函数接受不同数量的参数。

但是怎么接受呢?像Python那样def f(**args)

当然不是。Javascript(后文简称JS)采用的方法更为奇特,直接无需在参数列表中定义,直接向函数中传递你想要传递的参数即可。

那么在函数中怎么获取呢?函数中有一个变量叫arguments,可以把它当作一个数组,里面存放了传入这个函数的所有参数。

举个例子:

function MySum() {
    var ans = 0;
    for (var i = 0; i < arguments.length; i++) {
        ans += arguments[i];
    }
    return ans;
}

const SUM = MySum(1, 2, 3, 4);
console.log(SUM);

运行结果:

10

题外话:

有没有很好奇arguments到底长啥样呢?

不如我们在函数中输出一下:

function f() {
    console.log(arguments);
}

f();
f(1, 2, "Hello");

在谷歌浏览器控制台执行,可以得到结果:

Arguments [callee: ƒ, Symbol(Symbol.iterator): ƒ]
Arguments(3) [1, 2, 'Hello', callee: ƒ, Symbol(Symbol.iterator): ƒ]

完全可以将其理解为一个有着特殊属性的列表/数组。

原创不易,转载请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/129977062


http://www.kler.cn/a/6536.html

相关文章:

  • 排序算法--选择排序
  • 接入DeepSeek大模型
  • AI 编程工具—Cursor进阶使用 Agent模式
  • 小书包:让阅读更美的二次开发之作
  • 对比uart iic spi 三种总线的使用
  • Vue3的el-table-column下拉输入实时查询API数据选择的实现方法
  • Stable Diffusion 安装教程
  • opencv_c++学习(二)
  • 使用JSR303对数据进行校验【JAVA】
  • Linux reset子系统和驱动实例
  • GEE:栅格转矢量
  • Jackson之ObjectMapper常用用法
  • 【异常解决】java: 无法访问org.springframework.boot.SpringApplication的解决方案
  • 中级软考有没有必要考?
  • php+mysql仓储进销存仓库管理系统
  • 【C++】多态(二)
  • 从零开始学习InfluxDB:安装和使用入门教程
  • C++ using:软件设计中的面向对象编程技巧
  • 分库分表笔记
  • MVVM理解、object.defineProperty、数据代理
  • Android动态换肤框架实现小结
  • 射频接收机概述
  • PyTorch模型保存方法对比及其实现原理详解
  • 大数据领域的发展及其对现实世界的价值
  • BloombergGPT(LLM大模型用于金融科技)
  • Qt源码阅读(三) 对象树管理