当前位置: 首页 > 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

相关文章:

  • vue2使用render,js中写html
  • PHP 微信棋牌开发全解析:高级教程
  • 2024年港澳台华侨生联考师范类院校录取情况来
  • 常用的缓存技术都有哪些
  • javaFX.(蜜雪冰城点餐小程序)MySQL数据库
  • 使用CNN模型训练图片识别(键盘,椅子,眼镜,水杯,鼠标)
  • 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源码阅读(三) 对象树管理