js函数参数设置默认值

php有个很方便的用法是在定义函数时可以直接给参数设默认值,如:

function simue ($a=1,$b=2){
  return $a+$b;
}
echo simue(); //输出3
echo simue(10); //输出12
echo simue(10,20); //输出30

但js却不能这么定义,如果写function simue(a=1,b=2){}会提示缺少对象。

js函数中有个储存参数的数组arguments ,所有函数获得的参数会被编译器挨个保存到这个数组中。于是我们的js版支持参数默认值的函数可以通过另外一种变通的方法实现,修改上例:

function simue (){
  var a = arguments[0] ? arguments[0] : 1;
  var b = arguments[1] ? arguments[1] : 2;
  return a+b;
}
alert( simue() ); //输出3
alert( simue(10) ); //输出12
alert( simue(10,20) ); //输出30

转载于:https://www.cnblogs.com/try-better-tomorrow/p/7095827.html

js 的函数参数的默认值问题相关推荐

  1. C++中函数参数的默认值

    文章目录 1 C++中函数参数的默认值 1.1 C++中函数参数的默认值 1.2 函数默认参数的规则 2 函数占位参数 2.1 函数占位参数 2.2 函数占位参数的意义 1 C++中函数参数的默认值 ...

  2. ES6新特性_ES6函数参数的默认值设置---JavaScript_ECMAScript_ES6-ES11新特性工作笔记011

    然后我们再去看,es6中的函数参数的默认值的设置. 可以看到上面我写了个函数,然后 我们调用一下这个函数,并且打印了结果. 然后我们去看,如果我们调用这个函数的时候不写第3个参数 那么,可以看到得到的 ...

  3. 【ES6 教程】第一章 新的ES6语法04—如何设置函数参数的默认值

    英文 | https://www.javascripttutorial.net 翻译 | 杨小爱 在本节教程中,我们将学习如何在 ES6 中处理 JavaScript 默认参数. TL;DR func ...

  4. ES6函数参数的默认值

    基本用法 在ES6之前,不能直接将函数的参数指定默认值,只能采用变通的方法 function fn(x,y) {y = y || 'World'console.log(x,y) }fn('Hello' ...

  5. php函数默认参数不传值报错,php 关于函数参数的默认值

    在写函数的时,有时我们会给参数设置默认值,如果参数默认值没有书写正确会引起警告,因此在这里整理一下正确使用方式 1.默认值必须是常量表达式,不能是诸如变量,类成员,或者函数调用等. 2.注意当使用默认 ...

  6. python教程:函数参数中默认值及重要警告

    最有用的形式是对一个或多个参数指定一个默认值.这样创建的函数,可以用比定义时允许的更少的参数调用,比如: def ask_ok(prompt, retries=4, reminder='Please ...

  7. C++ 函数参数的默认值和占位参数

    3.2函数占位参数 C++中函数的形参列表里可以有占位参数,用来做占位,调用函数时必须填补该位置 语法:返回值类型 函数名(数据类型){} 在现阶段函数的占位参数存在意义不大,但是后面的课程中会用到该 ...

  8. java 函数给默认值_函数参数的默认值

    在C中,关于它们在参数列表中的位置对默认参数施加的要求如下: 必须指定给定参数的默认参数不超过一次 . 多次指定它(即使具有相同的默认值)是非法的 . 具有默认参数的参数必须在参数列表的末尾形成一个连 ...

  9. c语言 为参数设置默认值,js函数参数设置默认值

    前端学HTTP之网关.隧道和中继 前面的话 Web是一种强大的内容发布工具.人们已经从只在网上发送静态的在线文档,发展到共享更复杂的资源,比如数据库内容或动态生成的HTML页面.Web浏览器为用户提供 ...

最新文章

  1. LeetCode简单题之按照频率将数组升序排序
  2. android java style_Android 在Java代码中设置style属性--使用代码创建ProgressBar对象
  3. springboot 做表白墙_学校表白墙有多羞耻??!辣眼分析数千条表白内容,原来脱单秘密在这里.......
  4. 基于软件开发对嵌入式开发的思考
  5. Android java判断字符串包含某个字符段(或替换)
  6. 成功解决AttributeError: module 'cv2.cv2' has no attribute 'CV_CAP_PROP_FPS'和 'CV_CAP_PROP_FRAME_WIDTH'
  7. dnf无限重连服务器,dnf无限连接服务器失败解决方法
  8. 一天学完spark的Scala基础语法教程十三、文件IO操作(idea版本)
  9. Matlab归一化函数(mapminmax)
  10. java虚拟_Java虚拟机(JVM)工作原理
  11. 2018 UESTC Training for Data Structures
  12. hive mysql互导_Hive和MySQL数据互导
  13. SQL Relay 0.49 发布,SQL 中间层
  14. cmd中python -V版本显示不出来
  15. docker search
  16. Git:如何在本地没有分支时,切换分支
  17. java在线聊天项目1.0版 异常处理——开启多个客户端,关闭一个客户端后,在其他客户端中再发出信息会出现异常的处理...
  18. MFC 获取窗口句柄
  19. 触摸屏组态图库 触摸屏图库 昆仑通态触摸屏专用
  20. html2canvas给图片添加水印,canvas 为图片添加水印

热门文章

  1. 29留数及其应用(五)
  2. java火币网做接口_火币网API文档——Websocket 请求与订阅示例
  3. java程序流程_java程序流程控制
  4. AI学习笔记(四)相机模型、图像聚类算法
  5. Felix: Flexible Text Editing Through Tagging and Insertion (2020-03)
  6. hdfs读写流程_必须掌握的分布式文件存储系统—HDFS
  7. Android OpenGL 开发
  8. SQL笔试之远交近攻
  9. 悟透delphi 第五章 包
  10. NAT对语音业务的影响(终端控制方案…