入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

es6的十大功能

创建时间:2018-02-24 投稿人: 浏览次数:227

翻译自Top 10 ES6 features by example

虽然ES6规范不是最近才发布,但我认为很多开发人员仍然不太熟悉。 主要原因是在规范发布之后,Web浏览器的支持可能很差。 目前,规范发布已经超过2年了,现在很多浏览器对ES6支持良好。 即使您(或您的客户)不使用最新版本的Web浏览器,也可以使用转换器(如Babel),在应用程序的构建过程中将ES6转换为ES5。 这意味着要向前迈出一步,学习ES6。

在本文中,我将尽量简单地介绍最有用的功能。 在本教程之后,您将拥有基本技能,并能够将其应用于实际项目中。 不要将其视为指南或文件。 我的目标是鼓励你深入挖掘并熟悉ES6。

const和let关键字

const使您能够定义常量(最终变量!)。 let让你定义变量。 这很棒,但是JavaScript中没有变量吗? 是有的,但是由var声明的变量具有函数范围,并被提升到顶部。 这意味着在声明之前可以使用一个变量。 让变量和常量具有块范围(由{}包围),在声明之前不能使用。

functionf() {  varx = 1  let y = 2  const z = 3  {    varx = 100    let y = 200    const z = 300    console.log("x in block scope is", x)    console.log("y in block scope is", y)    console.log("z in block scope is", z)  }  console.log("x outside of block scope is", x)  console.log("y outside of block scope is", y)  console.log("z outside of block scope is", z)} f()

运行结果如下:

xinblock scope is 100 yinblock scope is 200 zinblock scope is 300 x outside of block scope is 100 y outside of block scope is 2 z outside of block scope is 3

数组辅助方法

出现了新的很酷的功能,这有助于在很多情况下使用JS Array。 您实现了多少次的逻辑,如:过滤,检查是否有任何或所有元素符合条件,或者元素转换? 是不是很多种情景下都有用过? 现在语言本身自带这些很好用的功能。 在我看来,这是最有价值的功能:

forEach

对数组的每个元素执行传入的函数,将数组元素作为参数传递。

varcolors = ["red","green","blue"] functionprint(val) {  console.log(val)} colors.forEach(print)

运行结果如下:

redgreenblue

map

创建一个包含相同数量元素的新数组,但是由传入的函数返回元素。 它只是将每个数组元素转换成别的东西。

varcolors = ["red","green","blue"] functioncapitalize(val) {    returnval.toUpperCase()} varcapitalizedColors = colors.map(capitalize) console.log(capitalizedColors)

运行结果如下:

["RED","GREEN","BLUE"]

filter

创建一个包含原始数组子集的新数组。 新数组包含的这些元素通过由传入的函数实现的测试,该函数应该返回true或false。

varvalues = [1, 60, 34, 30, 20, 5] functionlessThan20(val) {    returnval < 20} varvaluesLessThan20 = values.filter(lessThan20) console.log(valuesLessThan20)

运行结果如下:

[1,5]

find

找到通过传入的函数测试的第一个元素,该函数应该返回true或false。

varpeople = [  {name:"Jack", age: 50},  {name:"Michael", age: 9},   {name:"John", age: 40},   {name:"Ann", age: 19},   {name:"Elisabeth", age: 16}] functionteenager(person) {    returnperson.age > 10 && person.age < 20} varfirstTeenager = people.find(teenager) console.log("First found teenager:", firstTeenager.name)

运行结果如下:

First found teenager: Ann

every

检查数组的每个元素是否通过传入函数的测试,该函数应该返回true或false(每个函数都返回true,则结果为true,否则为false)。

varpeople = [  {name:"Jack", age: 50},  {name:"Michael", age: 9},   {name:
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了
未上传头像