《权威指南》笔记 -- 8.3 函数的实参和形参
8.3.1 可选参数
*:调用函数时,传入的参数少于函数声明时指定的参数个数,剩下的形参都将设置成undefined值。
a = a || []
一种习惯用法,可以用来过滤参数
*:一般将可选参数,放在参数列表的末端。
8.3.2 可变长的实参列表:实参对象
函数在被调用的时候,会自动生成一个类数组对象(不是真正数组,有length属性),它是实参对象的一个引用,标识符为arguments。
function f(x){}
在上述表达式汇中,参数x,可以通过x标识符来调用,也可以通过arguments[0]来调用,等价。
实参对象可以让用户在调用函数的时候,操作任意数量的实参。
arguments的属性:
- length : 实参长度
- callee : 指代当前执行的函数
- caller:指代调用当前正在执行的函数的函数….(太绕了,就是调用栈向上一层)
8.3.3 将对象属性做实参
问题:有的函数,需要的形参较多,调用时很难准确的记住参数的排列顺序。
解决方法:将参数,通过key-value的形式,传入一个对象,将对象作为实参。
8.3.4 实参类型
问题:js是弱类型语言,js函数在声明的时候,没有规定形参的类型,会引起一系列问题。
解决方法:在执行函数逻辑之前,对实参进行类型检查,针对不同类型的实参,进行相对应的操作。
《权威指南》笔记 -- 8.3 函数的实参和形参相关推荐
- HTML5与CSS3权威指南笔记案例1
第1章 <!DOCTYPE html> <meta charset = "UTF-8"> <title> Search </title&g ...
- python全栈开发_day10_函数的实参和形参
一:函数的实参和形参 实参是在调用函数时()出现的外界的实际的值 形参不能再函数外部直接使用 1)实参的两种形式 实参是调用函数时()中传入的参数 1.位置实参 def a(a):print(a)a( ...
- 《Cortex-M3 权威指南 笔记》
因了命途中的你们,我才没有荒芜了青春. – 莫言 一.介绍 整个 MCU 只有Cortex-M3 处理器内核(中央处理单元(CPU))和调试器是ARM设计的,而存储器,外设,I/O以及其它功能块是芯片 ...
- Java性能优化权威指南--笔记
出处:http://xiongpq.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 原文 ...
- netty权威指南笔记-以回车换行结尾的消息如何处理半包问题
概述 TCP底层会发生粘包和拆包,这个是TCP的一个特性.为了减少网络数据传输的次数,TCP总是希望让网络数据到达一定量级的时候才将数据发送出去,而不是缓存区一有数据就马上发送数据. TCP底层会根据 ...
- python函数调用时的实参和形参之间传递_python 函数(实参与形参、传递参数)...
函数 什么是函数?函数是带名字的代码块,用于完成具体的工作.写出一个函数后,就可以一直调用. 定义函数,函数的基本组成: 1.1 向函数传递参数 向函数中传递任意参数,这样打印出的结果就可以根据自己的 ...
- 学习正点原子讲解FreeRTOS中断管理心得和cortex-M3权威指南笔记
1.一个任务恢复运行: (1)恢复一个任务的运行:将一个任务从挂起态恢复到就绪态,只有通过函数vTaskSuspend()设置为挂起态的任务才能使用vTaskResume()恢复,函数原型为void ...
- JS权威指南笔记之数据类型
1.类型分为原始类型和对象. 2.原始类型有:数字类型,字符类型,布尔,和null undefind. 3.JavaScript里的函数都是真值. 4.函数和通过New关键字创建对象.这个样函数称为构 ...
- JavaScript权威指南笔记
为什么80%的码农都做不了架构师?>>> 第二章 词法结构 JavaScript区分大小写:/html不区分大小写 JavaScript会忽略程序中标识(token)之间的 ...
最新文章
- 计算机视觉与深度学习 | Matlab实现单目视觉里程计基于SURF特征(代码类)
- php显示类别名,如何在single.php中仅显示父类别名称? (wordpress)
- jdk8 calendar_JDK 8的Calendar.Builder
- LeetCode 320. 列举单词的全部缩写(回溯/位运算)
- LeetCode 1053. 交换一次的先前排列
- 我面试几乎必问:你设计索引的原则是什么?怎么避免索引失效?
- js操作frameset frame 对象
- EPLAN教程——导出CAD如何快捷配置
- git rm 和 rm 的区别
- 彩灯控制器课程设计vhdl_基于VHDL的彩灯控制器设计与实现.doc
- RHEL7挂载本地yum源
- react native 获取验证码
- 区块链:剖析工作量证明
- 河北省教育厅计算机制度,河北省中小学计算机室规章制度.doc.docx
- QT5.5.0+VS2013(X64)+hidapi的USB继续深究之 QT的汉字显示
- linux sox录音时间控制,Linux 对音频万能处理的命令——SOX
- ## KEIL 5在MDK注册过程中LIC无法添加的问题解决:
- 医学统计学第六版笔记
- element-ui中的表格组件实现隔行换色
- 十三届蓝桥杯基础知识大全
热门文章
- Qt - 窗口移动拉伸
- bq3060电池控制芯片使用笔记
- [Python] 错误“IndentationError: unindent does not match any outer indentation level”是什么意思?...
- 【每天读一点英文】gnuhpc注释版:Arthur Clutton Brock - The Cardinal Virtue of Prose
- 国内主要遥感卫星数据介绍
- SQL语句(实用篇)
- C语言程序设计————学习知识归纳总结(四)
- Python分布式搜索引擎-10章elasticsearch入门
- Java 中 HttpURLConnection 与 PoLA 法则
- ViLBERT: Pretraining Task-Agnostic Visiolinguistic Representations for Vision-and-Language Tasks