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 ...
随机推荐
- 用Servlet返回JSON文本动态创建DataGrid
<%@ page language="java" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC & ...
- Event事件与协程
1.Event事件 Event事件的作用: - 用来控制线程的执行. - 由一些线程去控制另一些线程. 2.进程池与线程池 1)什么是进程池与线程池? 进程池与线程池是用来控制当前程序允许创建(进程/ ...
- Nginx知识
OpenResty最佳实践->location匹配规则传说中图片防盗链的爱恨情仇
- Android Notification 消息通知 相关资料.md
目录 Android Notification 消息通知 相关资料 Android 5.0 Lollipop (API 21)无法正常显示通知图标,只能看到一个白色方块或灰色方块的问题 解决方案 参考 ...
- 三分钟读懂TT猫分布式、微服务和集群之路 (转)
http://www.cnblogs.com/smallSevens/p/7501932.html 针对新手入门的普及,有过大型网站技术架构牛人路过,别耽误浪费了时间,阅读之前,请确保有一定的网络基础 ...
- Java集合(2):两个生成器的例子:Collection生成器CollectionData及Map生成器MapData
Collection生成器CollectionData CollectionData体现了适配器模式的设计思想,它能把实现Generator接口的类的对象(包括上一章数组中的各种RandomGener ...
- Rowlock、UPDLOCK
ROWLOCK 使用行级锁,而不使用粒度更粗的页级锁和表级锁. UPDLOCK 读取表时使用更新锁,而不使用共享锁,并将锁一直保留到语句或事务的结束.UPDLOCK 的优点是允许您读取数据(不阻塞 ...
- 线程回调,线程中的队列,事件,greenlet模块,gevent模块,自定义补丁, 单线程实现并发,协程
1.线程回调 在线程池/进程池每次提交任务,都会返回一个表示任务的对象,Future对象Future对象具备一个绑定方法,add_done_callback 用于指定回调函数 add 意味着可以添加多 ...
- centos7 的system
1.vim /etc/systemd/system/alertmanager.service [Unit] Description=Alertmanager After=network-online. ...
- JS字符串格式化~欢迎来搂~~
/* 函数:格式化字符串 参数:str:字符串模板: data:数据 调用方式:formatString("api/values/{id}/{name}",{id:101,name ...