五分钟玩转 ES6 核心功能(二)

本文介绍了从 ES5 过渡到 ES6 的核心变化,包括从 for 循环到 forEach() 和 for-of,arguments 到 rest parameters,apply() 到 spread operator,concat() 到 spread operator,函数表达式到方法定义,以及构造函数到类的转变。通过实例展示了这些新特性的使用,使代码更加简洁易读。

01 从 for 到 forEach() 到 for-of

在 ES5 之前,迭代一个数组的代码示例如下:
在这里插入图片描述
在 ES5 中,可以使用数组的 forEach() 方法:
点击此处添加图片说明文字 ​
for 循环可以被中断,而 forEach() 更简洁。在 ES6 中,两者优点可以兼得:
在这里插入图片描述
如果想获得元素索引,代码示例如下:

在这里插入图片描述
处理参数默认值

在 ES5 中,对于函数参数的默认值,一般的处理方式如下面的代码示例:
在这里插入图片描述
而 ES6 给我们提供了更简单的方式,代码示例如下:
在这里插入图片描述
处理命名参数

如过我们想在传递参数的时候,带上参数的「名字」,一般通过对象字面值来实现,代码示例如下:
在这里插入图片描述
在 ES5 中会按如下的方式实现上面的 selecEntries 函数:
在这里插入图片描述
而在 ES6 中的实现方式如下:
在这里插入图片描述
使参数可选

参数可选的意思是可以在调用函数的时候不传递参数。ES5 中的代码示例如下:
在这里插入图片描述
在 ES6 中指定 {} 作为参数的默认值,示例代码如下:
在这里插入图片描述

02 从 arguments 到 rest parameters

在 ES5 中,如果要一个函数或方法接受任意数量的参数,必须使用一个特殊的变量 arguments:
在这里插入图片描述
在 ES6 中,你可以通过 … 操作符声明一个 rest parameter(下面例子中的 args):

点击此处添加图片说明文字 ​
如果只对后面的参数感兴趣,rest paramters 会更加友好:
在这里插入图片描述
在 ES5 处理上述情况的话比较麻烦:
在这里插入图片描述
Rest parameters 使代码更加易读,从函数的参数定义就可以看出来这个函数拥有不定数量的参数。

03 从 apply() 到 spread operator (…)

在 ES5 中,使用 apply() 将数组转换成 paramters;在 ES6 中用 spread operator 来到达此目的。

Math.max()

Math.max() 函数返回它最大的 arguments,它可以接受任意数量的 arguments,但对于数组不行。

ES5 - apply():
在这里插入图片描述
ES6 - spread operator:
在这里插入图片描述
Array.prototype.push()

Array.prototype.push() 将它的 arguments 作为元素附加到它的接收者上,没有一个方法可以解构地附加一个数组到另一个。

ES5 - apply():
在这里插入图片描述
ES6 - spread operator:
在这里插入图片描述

04 从 concat() 到 spread operator (…)

Spread operator(扩展操作符)可以把它的操作数变成数组元素,也就是说它可以作为数组方法 concat() 的替代。

ES5 - concat():
在这里插入图片描述
ES6 - spread operator:
在这里插入图片描述

05 从对象字面值中的函数表达式到方法定义

在 JavaScript 中,方法是值为函数的属性。

在 ES5 对象字面值中,方法的创建类似于属性,属性的值由函数表达式来提供。
在这里插入图片描述
ES6 有特别的语法来创建方法:
在这里插入图片描述

06 从构造函数到类

ES6 的类是针对构造函数更简单的语法。

基类

在 ES5 中,使用构造函数直接实现:
在这里插入图片描述
在 ES6 中,类为构造函数提供更简单的的语法:
在这里插入图片描述
注意方法定义的简洁语法 - 不需要关键字 function,还要注意在类里的部分之间没有逗号。

派生类

在 ES5 中子类化是复杂的,特别是引用基类构造函数和基类属性。下面是创建基于 Person 的 Employee 的子构造函数的范式:
在这里插入图片描述
ES6 有对子类化的内置支持,通过 extends 从句:
在这里插入图片描述

END
查看更多文章请关注【实训在线】微信公众号
原文首发:www.shixun.online

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值