JavaScript:函数的可选参数
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:函数的可选参数相关推荐
- 【Python】一篇文章学会def定义函数的可选参数,默认参数,有默认值的可选参数(保姆级注释)
目录 API说明: 固定参数例程 默认参数例程 可选参数元组例程 有默认值的可选参数r例程 综合例程 全文代码合集 总结 欢迎关注 『Python』 系列,持续更新中 欢迎关注 『Python』 系列 ...
- JavaScript函数之实际参数对象(arguments) / callee属性 / caller属性 / 递归调用 / 获取函数名称的方法...
函数的作用域:调用对象 JavaScript中函数的主体是在局部作用域中执行的,该作用域不同于全局作用域.这个新的作用域是通过将调用对象添加到作用域链的头部而创建的(没怎么理解这句话,有理解的亲可以留 ...
- Dart语言笔记(运算符、箭头函数、可选参数)
注:本文仅记录一些和java语法不甚相同或较难理解部分,方便个人的查找和学习 1.在 Dart 中有两个比较特殊的运算符. 赋值运算符 ??= 条件运算符 ?? void operatorTest() ...
- matlab里面的cov函数,如何强制Matlab /八度cov函数使用可选参数
我正在使用Matlab和Octave的cov(协方差)功能.实际上,我使用的是Octave,但最终它必须同时适用于这两种方法.此函数具有可选的第二个或第三个参数,以指示是否应使用N或N-1进行归一化. ...
- Javascript 函数声明,参数,立即执行函数
Javascript 函数 函数的声明 js中的函数是Function类创建的实例 let zy=new Function("a","console.log(a)&quo ...
- 【TS】函数重载--可选参数--默认参数
可选参数–默认参数 在ts中定义的数据类型,某些情况下只需要传入定义数据类型的一部分参数,比如:id .name.age.address,此时需要修改用户的名称,那么只需要传入id.name就够了:某 ...
- JavaScript函数中event参数的使用-----function(event){}
目录 什么是event? 当function函数中没有传入event参数时,我们应该如何在函数内部使用event呢? event.target的使用 event.currentTarget的使用 什么 ...
- php函数参数中括号,thinkphp手册中函数的可选参数的中括号为什么是包含的关系?...
比如: int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, i ...
- 按键精灵:函数之可选参数
引入jsdvip.luae,并写出函数逻辑 Import "jsdvip.luae"/** 试图找到节点并点击 param node 节点名 param is_click 是否点击 ...
最新文章
- 两帧点云刚性配准的ICP算法
- 中国闪存联盟三百大行动成果发布 IBM存储助力企业突破数据临界点
- java 弱引用定位_手把手教你定位常见Java性能问题
- CentOS6虚拟机下面配置双网卡
- 【全网最全的博客美化系列教程】08.自定义地址栏Logo
- .net core精彩实例分享 -- LINQ
- ajax的嵌套需要注意的问题
- MaxCompute平台非标准日期和气象数据处理方法--以电力AI赛为例
- 十六进制转为float,float转为二进制
- 李开复、张亚勤、吴恩达…国际大咖给你讲解AI知识
- 垃圾分类催生创业公司
- ubuntu 16.04无法上网
- unity服务器无响应怎么办,Windbg调试Unity3d 卡死 无响应等问题测试
- 炮兵阵地(状态压缩)
- MSVC2019 QT6 环境下的 C++ 中文编程实现(一)
- iOS常见错误1-SQLite错误-SQLITE_CANTOPEN,SQLITE_MISUSE和SQLITE_BUSY
- 修改植物大战僵尸游戏存档(Java实现版)
- Labview连接bartender自动打印条码
- spark on yarn实战 +HA
- linux 32位浏览器下载,Chrome 浏览器32位、64位下载地址大全
热门文章
- scrapy_redis种子优化
- HECO使用docker部署单节点的开发网
- 如何通过自学成为一名安卓软件开发工程师?
- The MVGC Multivariate Granger Causality Matlab初上手记录
- 4.2 Hive SQL
- 前端维护项目该怎么做呢
- 【产业互联网周报】高盛上调阿里云估值至1238亿美元;腾讯云入选Gartner全球云计算IaaS和PaaS魔力象限...
- 服务器独享宽带和共享宽带有那些区别
- 题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问
- KDD 2022 | 图“预训练、提示、微调”范式下的图神经网络泛化框架