ES6学习笔记<四> default、rest、Multi-line Strings
default 参数默认值
在实际开发 有时需要给一些参数默认值。
在ES6之前一般都这么处理参数默认值
function add(val_1,val_2){
val_1 = val_1 || 10;
val_2 = val_2 || 20;
return console.log(val_1 + val_2);
}
add(); //
而现在可以这么做
function add_1(val_1 = 5,val_2 = 10){
return console.log(val_1 + val_2);
}
add_1(); //
rest参数
rest参数类似C#中的params参数,以数组方式接收任意数量参数。
function fun(...arr){
console.log(arr);
}
class p{
constructor(){
this.a = "a";
this.b = "b";
}
}
let obj_p = new p();
fun("w","e","s","t"); // ["w", "e", "s", "t"]
fun("life"); // ["life"]
fun(obj_p); // [ 'obj'(p) ]
不论参数类型是什么均已数组方式接收。rest参数用 ... 作前缀来修饰参数。
function fun(par,...arr){
console.log(par);
console.log(arr);
}
fun("w","e","s","t"); // w , ["e", "s", "t"]
par接收第一个参数"w";arr接收剩下的所有参数且生成数组。
来看一个综合例子
function* fun(val,...arr){
for(let i = 0; i < arr.length; i++){
if(arr[i] <= 5){
yield val + arr[i];
}else if((arr[i] + val) > 10){
return arr[i] + val;
}
}
}
let f_1 = fun(7,9,8,7,6,5,4,3,2,1,0);
console.log(f_1.next()); // Object {value: 16, done: true}
console.log(f_1.next()); // Object {value: undefined, done: true}
复习之前提到的生成器函数和yield,当第一次执行生成器函数变量就执行return,那么生成器函数的done值直接为true且不在执行迭代。
Multi-line Strings 多行字符串
var str1 = `This life is the crossing of asea,
where we meet in the same narrow ship.`;
var str2 = "This life is the crossing of asea," + "where we meet in the same narrow ship.";
console.log(str1);
// This life is the crossing of asea,
// where we meet in the same narrow ship.
console.log(str2);
// This life is the crossing of asea,where we meet in the same narrow ship.
这个特性很易懂,ES6之前做多行字符串需要用 加号 连接,ES6 仅需用反引号即可,而且反引号中的空格缩进都有用。
ES6学习笔记目录
ES6学习笔记<一> let const class extends super
ES6学习笔记<二>arrow functions 箭头函数、template string、destructuring
ES6学习笔记<四> default、rest、Multi-line Strings
ES6学习笔记<五> Module的操作——import、export、as
ES6学习笔记<四> default、rest、Multi-line Strings的更多相关文章
- ES6学习笔记四:Proxy与Reflect
一:Proxy 代理. ES6把代理模式做成了一个类,直接传入被代理对象.代理函数,即可创建一个代理对象,然后我们使用代理对象进行方法调用,即可调用被包装过的方法: 1)创建 var proxy = ...
- ES6学习笔记四(类和对象)
{ // 构造函数和实例 class Parent{ constructor(name='mukewan'){ this.name=name; } } let v_parent=new Parent( ...
- ES6学习笔记<二>arrow functions 箭头函数、template string、destructuring
接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = ...
- ES6学习笔记<五> Module的操作——import、export、as
import export 这两个家伙对应的就是es6自己的 module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小 ...
- ES6学习笔记<三> 生成器函数与yield
为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数. 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口 ...
- ES6学习笔记<一> let const class extends super
学习参考地址1 学习参考地址2 ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015:也 ...
- ES6学习笔记之变量的解构赋值
变量的解构赋值 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构. 数组的解构赋值 以前,为变量赋值,只能直接指定值: 1 2 3 var a = 1; var b = 2; ...
- python3.4学习笔记(四) 3.x和2.x的区别,持续更新
python3.4学习笔记(四) 3.x和2.x的区别 在2.x中:print html,3.x中必须改成:print(html) import urllib2ImportError: No modu ...
- MySql学习笔记四
MySql学习笔记四 5.3.数据类型 数值型 整型 小数 定点数 浮点数 字符型 较短的文本:char, varchar 较长的文本:text, blob(较长的二进制数据) 日期型 原则:所选择类 ...
随机推荐
- python3.7安装
在Ubuntu系统带有原Python环境2.7,3.5,使用pyenv可以将其设置成最新的3.7.1,使用安装步骤如下:(防止丢失所以做了复制,复制来源:https://www.cnblogs.com ...
- 使用Docker Compose部署基于Sentinel的高可用Redis集群
使用Docker Compose部署基于Sentinel的高可用Redis集群 https://yq.aliyun.com/articles/57953 Docker系列之(五):使用Docker C ...
- piwik custom variables
piwik custom variables 是一个功能非常强大的自定义变量跟踪方案,多用于基于访客或是页面级别的变量跟踪.piwik默认最多可以添加5个自定义变量. 使用方式是在客户端脚本里添加如 ...
- MIME 设置
1,打开iis7,选择你要设置网站,打开mime类型选项 2,找到.rar的mime类型,复制他的类型 3,复制后选项添加,在文件扩展名那一栏填入.*,然后在下面的mime类型复制你刚复制的appli ...
- 黄聪:PHP Ajax 跨域问题最佳解决方案
本文通过设置Access-Control-Allow-Origin来实现跨域. 例如:客户端的域名是client.runoob.com,而请求的域名是server.runoob.com. 如果直接使用 ...
- 编译安装MySQL-5.7.13
编译安装MySQL-5.7 cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影 ...
- iis重新注册.netframework4.0
开始-运行-CMD (管理员权限运行) %windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i 废话不多说直接上图:
- TCP/IP学习20180624
计算机要互相通信.要有标准. TCP/IP协议,很多协议在一起.所以也叫TCP/IP协议族.经常接触的也就十几种. TCP/IP协议族按层次分为四层: 应用层(最上一层,http,ftp,pop3,i ...
- Lucene 特殊字符的问题
SolrQuerySyntax http://wiki.apache.org/solr/SolrQuerySyntax solr的处理方式: https://svn.apache.org/repos/ ...
- Consul之:key/value存储
key/value作用 动态修改配置文件 支持服务协同 建立leader选举 提供服务发现 集成健康检查 除了提供服务发现和综合健康检查,Consul还提供了一个易于使用的键/值存储.这可以用来保存动 ...