1,arguments

JavaScript的函数的参数(arguments)在函数体的内部表现为一个类似数组的对象。就是它拥有数组的方法,却不是Array的实例。

例1

我们直接打印出arguments,得到如下结果:

我们发现他有固定的几个属性和方法。length: 指的是传入参数的长度。Symbol指的是该数据是可遍历的。callee指向拥有这个arguments对象的函数,__proto__指向Object的原型对象。

其实我们声明函数的时候并没有指定参数,但是这个调用时的参数也保存到arguments中了。

例2:上面两个函数执行的结果是一样的

即使你声明了这个参数,调用函数的时候不传,也不会报错,只是参数为undefined。

注意:箭头函数没有自己的arguments。

2,参数设置默认值

在ES6出来之前我们给它设置默认参数,往往是在函数内部判断这个参数是不是为undefined,如果是,则意味着没有传这个参数,我们给它重新赋值。

ES6出来之后我们就可以显式的定义默认参数了。在参数后面用=就可以直接设置。这种方式更加直观和易懂。

例3

3,参数与扩展操作符。

ES6新增的扩展操作符,它可以很方便的操作参数数据。

(1)扩展参数

我们在调用函数的时候想要把数组的每一项当做参数传给函数,用扩展运算符就比较方便。

例4

(2)收集参数

我们在声明函数的时候使用扩展运算符,它会把剩余的参数收集起来,在函数体内以一个数组的形式体现。箭头函数不支持arguments,但可以用这种方式,收集所有参数。

例4...value当做形参时,只能放在所有参数最后面

参数 中_理解JavaScript中函数的参数相关推荐

  1. javascript 符号_理解JavaScript中“ =”符号的直观指南

    javascript 符号 by Kevin Kononenko 凯文·科诺年科(Kevin Kononenko) 理解JavaScript中" ="符号的直观指南 (A Visu ...

  2. 西门子for循环例子_理解JavaScript中的循环缺陷和迭代协议

    如果您已经用JavaScript或任何语言编程了一段时间,for-循环对你来说不应该陌生.您没有注意到许多编程语言,包括JavaScript,已经从使用for-循环使用迭代器-返回给定集合的下一项的对 ...

  3. 理解javascript中的回调函数(callback)【转】

    在JavaScrip中,function是内置的类对象,也就是说它是一种类型的对象,可以和其它String.Array.Number.Object类的对象一样用于内置对象的管理.因为function实 ...

  4. 理解javascript中的回调函数(callback)

    理解javascript中的回调函数(callback) 在JavaScrip中,function是内置的类对象,也就是说它是一种类型的对象,可以和其它String.Array.Number.Obje ...

  5. 深入理解JavaScript中的属性和特性

    深入理解JavaScript中的属性和特性 JavaScript中属性和特性是完全不同的两个概念,这里我将根据自己所学,来深入理解JavaScript中的属性和特性. 主要内容如下: 理解JavaSc ...

  6. php event loop,理解javascript中的事件循环(Event Loop)

    背景 在研究js的异步的实现方式的时候,发现了JavaScript 中的 macrotask 和 microtask 的概念.在查阅了一番资料之后,对其中的执行机制有所了解,下面整理出来,希望可以帮助 ...

  7. 理解JavaScript中的原型与原型链

    理解JavaScript中的原型与原型链 原型链是一种机制,指的是JavaScript中每个内置的对象都有一个内置的__proto__属性指向创建它的构造函数的prototype(原型)属性.原型链的 ...

  8. 理解JavaScript中部分设计模式

    理解JavaScript中部分设计模式 什么是设计模式 在软件工程中,设计模式是软件设计中常见问题可重用的方案.设计模式代表着经验丰富的软件开发人员使用的最佳实践.设计模式可以被认为是编程模板. 为什 ...

  9. 帮助你更好理解javascript中easing功能的网站 - Easings.net

    日期:2012-10-17  来源:GBin1.com 如果你开发过jQuery的动画效果的话,肯定接触过一个jQuery插件:jquery.easing plugin,这个插件可以帮助你生成不同类型 ...

最新文章

  1. 学习如何在AutoCad土木工程中绘制建筑设计图
  2. JQuery 的跨域方法 可跨任意网站
  3. Building Paragon in Unreal Engine 4 - GDC 2016
  4. vue 转为静态html,Vue CLI 3使用:HTML和静态资源(五)
  5. 【Java】日期字符串转换java.sql.Date对象
  6. 苹果6系统怎么更新不了_苹果App Store登录不了怎么办_登录不了App Store的解决办法?...
  7. python学习之内部函数:
  8. Ubuntu20.04使用FreeRADIUS搭建EAP认证环境
  9. Python 实现 2048 游戏
  10. ZStack--级联框架
  11. Zabbix实现企业微信报警
  12. 小丸子学Docker系列之——安装Docker及基本命令的使用
  13. verlay虚拟化技术_Overlay介绍
  14. VMware:继续使用 Adob​​e Flash 管理您的 vCenter
  15. 富文本编辑器图片上传功能提示falsh版本低请你升级的解决方法
  16. 计算机芯片的主要材料是半导体吗,芯片的主要材料
  17. 日本上班族坐抗力球减臀
  18. (记) Deployment设置环境变量不生效
  19. 【解决】Unet训练自己的数据集,预测结果全黑
  20. MT6357 PMIC datasheet,MT6357数据手册,MT6357原厂资料介绍

热门文章

  1. 今天的这样一来的i-p2psearcher
  2. 好的飞鸽传书2007对于对外的API
  3. 雷军被重新任命为金山软件董事会副主席
  4. 面向对象技术第一讲 多态性
  5. xp下编程实现窗体透明特效
  6. javascript 字符串操作函数大全
  7. 空间插值方法对比整理
  8. 吴恩达机器学习笔记五之神经网络
  9. xming+putty在windows下远程linux主机图形界面程序及putty乱码解决
  10. 如何使Xcode占用更少的空间 Xcode占用空间太大解决方法