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. LDP传输地址配置——Vecloud
  2. ibatis中使用List作为传入参数的使用方法及 CDATA使用
  3. 5 月编程语言排行榜:C 重回第一,今年编程语言名人堂冠军还会是它吗? | 原力计划...
  4. The “QtRunWork“ task returned false but did not log an error
  5. 怎么自动运行文件并隐藏_绝对实用!iphone用久卡顿怎么办?5个隐藏小技巧提升运行速度...
  6. arcgis server10.2.2发布地图基础服务的具体步骤
  7. mysql乐观锁和悲观锁的区别_mysql悲观锁和乐观锁的区别
  8. springboot +vue实现打印PDF(实现批量打印快递单)
  9. TreeView 右键菜单
  10. 强化学习#code3
  11. 你越来越孤独的3个原因
  12. 支持iCloud的html文本编辑,人人都可用 iCloud网页版iWork完全开放
  13. java——集合详解
  14. 第六章第三十四题(打印日历)(Print calendar) - 编程练习题答案
  15. 信息系统项目管理师(2022年)—— 重点内容:项目质量管理(8)
  16. 【编程题】【Scratch一级】2020.09 字母AB点头问好
  17. java使用drawtext重叠_DrawText的使用
  18. 模板引擎:ftl文件生成word
  19. 关于intrins.h头文件的介绍,做流水灯时候更方便
  20. 【CSDN】文章撰写方法

热门文章

  1. 一周技术思考(第22期)-编程的基本礼节
  2. 洛谷P2258 子矩阵[2017年5月计划 清北学堂51精英班Day1]
  3. 【收藏】如何开始创业
  4. Linux实训项目——第十一章:基础DNS服务器与主从同步
  5. GDAL error: ‘NoneType‘ object has no attribute ‘GetGeoTransform‘
  6. 如何通过自学成为一名安卓软件开发工程师?
  7. knn matting matlab,一键抠图,毛发毕现:这个GitHub项目助你快速PS
  8. cubemx实现CAN通讯
  9. python使用Elasticsearch对wikipedia的数据进行检索(详细流程)
  10. Red Hat Ubuntu Centos 更改登录横幅