es6的十大功能
翻译自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:
|
