JavaScript函数可以以任意数目的参数来调用, 而不管函数定义中的参数名字有多少个。由于函数是宽松类型的,它就没有办法声明所期望的参数的类型,并且,向任何函数传递任意类型的参数都是合法的。

当调用一个函数的参数少于声明的参数个数的时候,其他的参数就有一个undefined的值。编写这样的函数常常是很有用的:某些参数为可选的并且在调用函数的时候可以忽略它们。要做到这一点,必须能够为忽略掉的参数分配一个合理的默认值。例如:

<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><script>function copyPropertyNamesToArray(o,a){a=a||[];for(var prop in o){a.push(prop);}return a;}</script></head><body><script>var o={};o.x=1;o.y=2;o.z=3;p={"name":"Tom"};var test=copyPropertyNamesToArray(o);alert(test[0]);alert(test[1]);alert(test[2]);alert(copyPropertyNamesToArray(p,test));</script></body>
</html>

在本例中,如果a已经定义了并且非null,它返回a,即便a是空的。否则它返回一个新的空数组。

注意在使用可选的参数来设计函数的时候,应该确保把可选的参数放在参数列表的末尾,以便它们可以被忽略。

JavaScript:函数的可选参数相关推荐

  1. 【Python】一篇文章学会def定义函数的可选参数,默认参数,有默认值的可选参数(保姆级注释)

    目录 API说明: 固定参数例程 默认参数例程 可选参数元组例程 有默认值的可选参数r例程 综合例程 全文代码合集 总结 欢迎关注 『Python』 系列,持续更新中 欢迎关注 『Python』 系列 ...

  2. JavaScript函数之实际参数对象(arguments) / callee属性 / caller属性 / 递归调用 / 获取函数名称的方法...

    函数的作用域:调用对象 JavaScript中函数的主体是在局部作用域中执行的,该作用域不同于全局作用域.这个新的作用域是通过将调用对象添加到作用域链的头部而创建的(没怎么理解这句话,有理解的亲可以留 ...

  3. Dart语言笔记(运算符、箭头函数、可选参数)

    注:本文仅记录一些和java语法不甚相同或较难理解部分,方便个人的查找和学习 1.在 Dart 中有两个比较特殊的运算符. 赋值运算符 ??= 条件运算符 ?? void operatorTest() ...

  4. matlab里面的cov函数,如何强制Matlab /八度cov函数使用可选参数

    我正在使用Matlab和Octave的cov(协方差)功能.实际上,我使用的是Octave,但最终它必须同时适用于这两种方法.此函数具有可选的第二个或第三个参数,以指示是否应使用N或N-1进行归一化. ...

  5. Javascript 函数声明,参数,立即执行函数

    Javascript 函数 函数的声明 js中的函数是Function类创建的实例 let zy=new Function("a","console.log(a)&quo ...

  6. 【TS】函数重载--可选参数--默认参数

    可选参数–默认参数 在ts中定义的数据类型,某些情况下只需要传入定义数据类型的一部分参数,比如:id .name.age.address,此时需要修改用户的名称,那么只需要传入id.name就够了:某 ...

  7. JavaScript函数中event参数的使用-----function(event){}

    目录 什么是event? 当function函数中没有传入event参数时,我们应该如何在函数内部使用event呢? event.target的使用 event.currentTarget的使用 什么 ...

  8. php函数参数中括号,thinkphp手册中函数的可选参数的中括号为什么是包含的关系?...

    比如: int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, i ...

  9. 按键精灵:函数之可选参数

    引入jsdvip.luae,并写出函数逻辑 Import "jsdvip.luae"/** 试图找到节点并点击 param node 节点名 param is_click 是否点击 ...

最新文章

  1. 两帧点云刚性配准的ICP算法
  2. 中国闪存联盟三百大行动成果发布 IBM存储助力企业突破数据临界点
  3. java 弱引用定位_手把手教你定位常见Java性能问题
  4. CentOS6虚拟机下面配置双网卡
  5. 【全网最全的博客美化系列教程】08.自定义地址栏Logo
  6. .net core精彩实例分享 -- LINQ
  7. ajax的嵌套需要注意的问题
  8. MaxCompute平台非标准日期和气象数据处理方法--以电力AI赛为例
  9. 十六进制转为float,float转为二进制
  10. 李开复、张亚勤、吴恩达…国际大咖给你讲解AI知识
  11. 垃圾分类催生创业公司
  12. ubuntu 16.04无法上网
  13. unity服务器无响应怎么办,Windbg调试Unity3d 卡死 无响应等问题测试
  14. 炮兵阵地(状态压缩)
  15. MSVC2019 QT6 环境下的 C++ 中文编程实现(一)
  16. iOS常见错误1-SQLite错误-SQLITE_CANTOPEN,SQLITE_MISUSE和SQLITE_BUSY
  17. 修改植物大战僵尸游戏存档(Java实现版)
  18. Labview连接bartender自动打印条码
  19. spark on yarn实战 +HA
  20. linux 32位浏览器下载,Chrome 浏览器32位、64位下载地址大全

热门文章

  1. scrapy_redis种子优化
  2. HECO使用docker部署单节点的开发网
  3. 如何通过自学成为一名安卓软件开发工程师?
  4. The MVGC Multivariate Granger Causality Matlab初上手记录
  5. 4.2 Hive SQL
  6. 前端维护项目该怎么做呢
  7. 【产业互联网周报】高盛上调阿里云估值至1238亿美元;腾讯云入选Gartner全球云计算IaaS和PaaS魔力象限...
  8. 服务器独享宽带和共享宽带有那些区别
  9. 题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问
  10. KDD 2022 | 图“预训练、提示、微调”范式下的图神经网络泛化框架