js函数-参数默认值
1. 在es6之前必须通过函数内部实现
就像以下的几种情况:
function example(a,b){
var a = arguments[0] ? arguments[0] : 1;//设置参数a的默认值为1
var b = arguments[1] ? arguments[1] : 2;//设置参数b的默认值为2
return a+b;
}
function example(name,age){
name=name||'貂蝉';
age=age||21;
alert('你好!我是'+name+',今年'+age+'岁。');
}
function example(name,age){
if(!name){name='貂蝉';}
if(!age){age=21;}
alert('你好!我是'+name+',今年'+age+'岁。');
}
2. 在ES6中可以像其它编程语言那样直接使用默认参数了
在class的构造器中使用默认参数
1 class Person {
2 constructor(name="顺", age=18) {
3 this.name = name
4 this.age = age
5 }
6 }
7 const P1 = new Person()
8 console.log(P1.name) //顺
构造函数中,(适用于项目中有一个古老的方法,但是现在要求根据某个条件来改变这个方法的逻辑,则只需要给这个函数一个默认值即可,不需要通篇找到这个方法去改)
1 isHandle(false) //参数为false,则实参flag接收的为false
2
3 isHandle()
4
5 function isHandle(flag = true) { //默认为true,调用函数时不传默认为true,
6 if(flag) {
7 //flag == true 时的逻辑
8 } else {
9 //flag == false 时的逻辑
10 }
11 }
js函数-参数默认值的更多相关文章
- Python函数参数默认值的陷阱和原理深究"
本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文 ...
- java函数参数默认值
java函数参数默认值 今天,需要设定java函数参数的默认值,发现按照其它语言中的方法行不通 java中似乎只能通过函数的重载来实现 函数参数默认代码
- ES6学习 --函数参数默认值与解构赋值默认值
1. ES6的解构ES6中引入了解构赋值的操作,其作用是:将值从数组Array或属性从对象Object提取到不同的变量中 即分为两种情况:从数组Array中解构,以及从对象Object中解构 ①.从数 ...
- Python函数参数默认值的陷阱和原理深究(转)
add by zhj: 在Python文档中清楚的说明了默认参数是怎么工作的,如下 "Default parameter values are evaluated when the func ...
- ES6函数参数默认值作用域的模拟原理实现与个人的一些推测
一.函数参数默认值中模糊的独立作用域 我在ES6入门学习函数拓展这一篇博客中有记录,当函数的参数使用默认值时,参数会在初始化过程中产生一个独立的作用域,初始化完成作用域会消失:如果不使用参数默认值,不 ...
- ES6 - 函数扩展(函数参数默认值)
函数参数默认值 ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法. function log(x, y) { y = y || 'World'; console.log(x, y); ...
- 【C#基础概念】函数参数默认值和指定传参和方法参数
函数参数默认值和指定传参 最近在编写代码时发现介绍C#参数默认值不能像PL/SQL那样直接设置default,网上也没有太多详细的资料,自己琢磨并试验后整理成果如下: C#允许在函数声明部分定义默认值 ...
- ES6 学习笔记之三 函数参数默认值
定义函数时为参数指定默认值的能力,是现代动态编程语言的标配.在ES6出现之前,JavaScript是没有这种能力的,框架为了实现参数默认值,用了很多技巧. ES6 的默认参数值功能,与其他语言的语法类 ...
- ES6中函数参数默认值问题
参数默认值 // 以前的参数默认值写法 let fn = (a, b) => { a = typeof a === "undefined" ? 10 : a b = type ...
- js定义参数默认值
javascript可以用arguments定义参数组. 一.简单的定义参数默认值 function test1(a,b){ //如果有参数一,则返回参数一,如果没有返回默认值"这是参数 ...
随机推荐
- SQL Server获取连接的IP地址
来源:http://www.itpub.net/thread-193247-1-1.html 先保存,以后研究一下 1 *--获取连接SQL服务器的信息 2 3 所有连接本机的:操作的数据库名,计算机 ...
- 使用虚拟 dom 渲染页面 《vue.js 设计与实现》
使用 js 对象描述 ui 更加灵活.假如我们要根据级别不同采用不同的标签.js 对象描述的话,只需要一个变量代表 h 标签即可. // 当变量改变时,标签也会变化. let level = 3 c ...
- nginx配置https安全访问
1.使用wosigncode生成CSR https://bbs.wosign.com/forum.php?mod=viewthread&tid=3526#lastpost 2.配置,选择第7小 ...
- listener.log/listener_scan1.log监听日志太大清理
listener_scan1.log清理lsnrctlset current_listener listener_scan1show log_statusset log_status offcd /u ...
- bug单建单规范
bug提单保证,清晰.简单.明了. 标题: [版本][服务器][模块][必现/偶现]bug标题(最短的话描述bug) 例:[0.9.0][dev][系统][必现]点击商店,跳转到仓库页面 bug模 ...
- el-admin角色编辑功能详解
1.首先el-admin中的编辑和删除功能重新写成为了一个组件 data和permission都是父组件向子组件传参.data传的是当前表格中选中行的这条数据,permission是定义的一个对象. ...
- 如何加密一个sheel脚本!
脚本写完后,如果要发布给其它人使用的话,可能会因安全原因而受阻,特别是脚本中包含密码等原因,而对脚本加密则可以解决此问题,本文提供了CentOS7/8环境下,加密shell脚本需要安装的程序和方法. ...
- echart 解决setOption线残留
前言: Antd + echarts 我想要实现的是点击表的某一行自动生成对应的折线图,我在点击第一行生成5条线,我在点击第二行的时候,本该生成2条线,结果还是5条线: 最开始我以为设置的 serie ...
- 前端性能精进之浏览器(五)——JavaScript
JavaScript 是一种通过解释执行的高级编程语言,同时也是一门动态.弱类型的直译脚本语言,适合面向对象(基于原型)和函数式的编程风格. 直译语言可以直接在解释器中运行,而与直译语言相对应的编译语 ...
- Qt实用技巧:在CentOS上使用linuxdeployqt打包发布qt程序
前言 之前在ubuntu上发布qt程序相对还好,使用脚本,在麒麟上发布的时候,使用脚本就不太兼容,同时为了实现直接点击应用可以启动应用的效果,使用linuxdeployqt发布qt程序. 本篇文 ...