JavaScript 函数参数


JavaScript 函数对参数的值没有进行任何的检查。


函数显式参数(Parameters)与隐式参数(Arguments)

functionName(parameter1, parameter2, parameter3) { // 要执行的代码…… }

函数显式参数在函数定义时列出。

函数隐式参数在函数调用时传递给函数真正的值。


参数规则

JavaScript 函数定义显式参数时没有指定数据类型。

JavaScript 函数对隐式参数没有进行类型检测。

JavaScript 函数对隐式参数的个数没有进行检测。


默认参数

ES5 中如果函数在调用时未提供隐式参数,参数会默认设置为: undefined

有时这是可以接受的,但是建议最好为参数设置一个默认值:

实例(ES5)

如果y已经定义 , y || 返回 y, 因为 y 是 true, 否则返回 0, 因为 undefined 为 false。

如果函数调用时设置了过多的参数,参数将无法被引用,因为无法找到对应的参数名。 只能使用 arguments 对象来调用。

ES6 函数可以自带参数

ES6 支持函数带有默认参数,就判断 undefined 和 || 的操作:


arguments 对象

JavaScript 函数有个内置的对象 arguments 对象。

argument 对象包含了函数调用的参数数组。

通过这种方式你可以很方便的找到最大的一个参数的值:

实例


通过值传递参数

在函数中调用的参数是函数的隐式参数。

JavaScript 隐式参数通过值来传递:函数仅仅只是获取值。

如果函数修改参数的值,不会修改显式参数的初始值(在函数外定义)。

隐式参数的改变在函数外是不可见的。


通过对象传递参数

在JavaScript中,可以引用对象的值。

因此我们在函数内部修改对象的属性就会修改其初始的值。

修改对象属性可作用于函数外部(全局变量)。

修改对象属性在函数外是可见的。

JavaScript 函数参数相关推荐

  1. JavaScript 函数参数是传值(byVal)还是传址(byRef)?

    对于"JavaScript 函数参数是传值(byVal)还是传址(byRef)"这个问题,普遍存在一个误区:number,string等"简单类型"是传值,Nu ...

  2. 深入理解javascript函数参数

    arguments javascript对参数要求很随意,她才不管你传进来的参数是什么数据类型,甚至可以不传参数.实际上,javascript函数调用甚至不检查传入形参的个数. 1 function ...

  3. javascript函数参数的传递问题

    在javascript中数组是引用传递的.先来看一段代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN& ...

  4. 菜鸟教程 之 JavaScript 函数(function)

    From:https://www.runoob.com/js/js-function-definition.html JavaScript 函数定义 JavaScript 使用关键字 function ...

  5. 深入理解javascript函数系列第二篇——函数参数

    前面的话 javascript函数的参数与大多数其他语言的函数的参数有所不同.函数不介意传递进来多少个参数,也不在乎传进来的参数是什么数据类型,甚至可以不传参数.本文是深入理解javascript函数 ...

  6. JavaScript进阶系列01,函数的声明,函数参数,函数闭包

    本篇主要体验JavaScript函数的声明.函数参数以及函数闭包. □ 函数的声明 ※ 声明全局函数 通常这样声明函数: function doSth() { alert("可以在任何时候调 ...

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

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

  8. 有没有更好的方法在JavaScript中执行可选的函数参数? [重复]

    本文翻译自:Is there a better way to do optional function parameters in JavaScript? [duplicate] This quest ...

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

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

最新文章

  1. 当前日期得到本周的开始和结束日期
  2. 打造一个宇宙 星系模拟产生对宇宙进化惊人见解
  3. 工业机器人电路图讲解话术_燃气传感器技术在防爆喷涂机器人中的应用
  4. 有一种努力叫:靠 自 己!
  5. robot ride edit 页面不显示_【框架】robot-framework预研
  6. Linux学习笔记:用户、用户组、文件系统和网络
  7. 三菱plc字高八位和低八位_三菱PLC如何传送高8位和低8位数据
  8. python爬取王者_python 爬取王者荣耀高清壁纸
  9. Awake OnEnable Start Update LateUpdate FixedUpdate
  10. GSM/GPRS/EDGE简介
  11. 2.5亿!华为成立新公司!
  12. 7个开源的SNS社交网络平台
  13. 中间表为什么可以不用实体类_法国蜗牛供不应求,为什么不用中国蜗牛代替?看完才知道真不可以...
  14. CentOS配置postgresql+postsql
  15. python写入文件后换行_python写入文件自动换行问题的方法
  16. 手把手教你学五笔打字输入法之1(如何快速巧记五笔字型字根表篇)
  17. 机器人语音问答流程及借助百度API Python实现
  18. 我选择了IT,我会用最大的热诚进军IT大技术!
  19. 获取Throwable里头的错误信息
  20. 根据HSV颜色空间识别魔方是否还原

热门文章

  1. java过滤乱码 \u形式乱码 unicode乱码
  2. python-匿名函数lambda
  3. Linux命令(27):shell 结合expect,多服务器批量分发数据
  4. Angularjs API指令查询
  5. Java 拖拽文件到文本框
  6. unity打包模型存在的一个问题
  7. parted命令详解
  8. 上周回顾:***猖狂叫板欧美政府 赛门铁克赔偿羞羞答答
  9. 网络设备中的交换机(Switch)是什么?—Vecloud微云
  10. Citus中的分片策略:Append Distribution追加分配