ES6入门二:默认值与默认值表达式
- 默认值
- 默认值表达式
需要注意的是,这种默认值和默认表达式在IE的最新版本中仍然没有得到兼容,只能通过编译转码的方式降级到ES5使用。
一、默认值
在函数声明时可以给形参赋默认值,当调用函数时不传入或者传入undefined的时候,函数会使用默认值进行计算。
示例:
function foo(x = 11,y = 31){
console.log(x + y);
}
foo( null,6); //
foo(undefined, 10); //
ES5编译结果:
"use strict";
function foo() {
var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 11;
var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 31;
console.log(x + y);
}
foo(null, 6); //
foo(undefined, 10); //
二、默认值表达式
在函数声明时,形参可以是一个计算表达式,当调用函数执行时不传参或者传入undefined就使用计算表达式计算的值作为参数的值。
示例:
let a = 10;
function bar(val){
return a + val;
}
function foo(x = a + 5, y = bar(x)){
console.log(x, y);
}
foo(); // 15 25
foo(3); // 3 13
foo(undefined, 10); // 15 10
ES5编译结果:
"use strict";
var a = 10;
function bar(val) {
return a + val;
}
function foo() {
var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : a + 5;
var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : bar(x);
console.log(x, y);
}
foo(); // 15 25
foo(3); // 3 13
foo(undefined, 10); // 15 10
ES6入门二:默认值与默认值表达式的更多相关文章
- ES6入门(二)
目录 ES6入门(二) es6之解构赋值 数组的解构赋值 对象的解构赋值 字符串的解构赋值 数值和布尔值的解构赋值 函数参数的解构赋值 圆括号问题 ES6入门(二) es6之解构赋值 数组的解构赋值 ...
- ES6 学习笔记之三 函数参数默认值
定义函数时为参数指定默认值的能力,是现代动态编程语言的标配.在ES6出现之前,JavaScript是没有这种能力的,框架为了实现参数默认值,用了很多技巧. ES6 的默认参数值功能,与其他语言的语法类 ...
- PropertyGrid—默认属性,默认事件,属性默认值
零.引言 PropertyGrid显示一个对象的属性和事件时,可以设置其默认属性和事件,也就是当你选中对象时,propertyGrid中焦点在哪一个属性或事件上.为对象的属性提供默认值,使Proper ...
- python12--字符串的比较 函数的默认值的细节 三元表达式 函数对象 名称空间 作用域 列表与字典的推导式 四则运算 函数的嵌套
复习 1.字符串的比较; 2.函数的参数; ******实参与形参的分类: 3.函数的嵌套调用: # 字符串的比较# -- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较 ...
- SQL约束(主键约束、外键约束、自动递增、不允许空值、值唯一、值默认、值限制范围)
NOT NULL 不允许空值约束 NOT NULL 约束强制列不接受 NULL 值(NULL值就是没有值或缺值).NOT NULL 约束强制字段始终包含值,即不向字段添加值,就无法插入新记录或者更新记 ...
- jqgrid cellEdit为true的时候,默认选中单元格值的解决方案
jqgrid cellEdit为true的时候,点击单元格的时候,鼠标在单元格最前面闪. 这时候如果要修改数字内容,非常麻烦.要全选单元格内容,不然不好改. 点击单元格的时候,默认选中单元格值的解决方 ...
- IE下默认TD colspan rowspan值为1
IE下默认TD colspan rowspan值为1,即使这个TD没有合并没有rowspan,colspan属性,其值都为1,chrome下正常. 判断是否rowspan colspan为TD.get ...
- extjs中combobox默认显示第一个值
在进入页面时往往用户希望页面能够显示默认的内容,但是页面中会存在一些选项通过用户选择之后才会加载相应的内容.在这篇文章里面介绍了如何去设置页面中默认的内容,如combobox默认显示第一个值. 页面: ...
- c# 所有类型都是从object继承,那么值类型默认也有装箱吗?
我们知道,c#所有类型都是从System.Object继承,int等值类型也逃脱不了这种命运,那难道值类型默认有装箱操作吗?答案是否,在CLR via这本书中有简短的解释说明: 1.值类型从Syste ...
随机推荐
- Android8.0新特性总结
1.通知渠道:开发者可以自定义应用的通知内容类别,为用户提供一个可以对通知精细控制的接口,用户可以对通知 进行精细的掌控 开发指南 创建通知渠道的步骤: 创建 NotificationChann ...
- leetcode25 K 个一组翻转链表
这道题关于链表的操作,中间指针操作略复杂. /** * Definition for singly-linked list. * struct ListNode { * int val; * List ...
- 在vue项目中使用element-ui的Upload上传组件
<el-upload v-else class='ensure ensureButt' :action="importFileUrl" :data="upLoadD ...
- python 生成词云
1.知识点 """ WordCloud参数讲解: font_path表示用到字体的路径 width和height表示画布的宽和高 prefer_horizontal可以调 ...
- spring cloud之Eureka不能注销docker部署的实例
1 起因 事件的起因是这样的,我们在微服务改造的过程中,选择将服务注册到eureka中,开发的时候还好,使用场景是这样的: 在idea中启动服务,成功注册到eureka,关闭服务,eureka成功注销 ...
- 转 CentOS 7 环境下安装Maven
下载安装文件 wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3 ...
- monkey 查找闪退页面的方法
使用了命令 adb shell monkey --pct-touch 100 -v -p com.iBer.iBerAppV2 5000 >/Users/kaibinliu/Desktop ...
- SqlServer/Oracle 通过一个sql判断新增/修改
if (Config.DbInfo.DbType.Equals(DBType.SQLServer)) { sql = ].GetString() + ].GetString() + ].GetStri ...
- 【Gym - 100923I】Por Costel and the Pairs(思维题)
Por Costel and the Pairs Descriptions 有T组测试样例 有n个男的,n个女的,第i个人都有为当前一个大小为i的懒惰值,当一男一女懒惰值的乘积<=n他们就就可以 ...
- NumSharp的数组切片功能
NumSharp的数组切片功能 原文地址:https://medium.com/scisharp/slicing-in-numsharp-e56c46826630 翻译初稿(英文水平有限,请多包涵): ...