ES6系列教程之入门
技术、总结 Dec 22, 2017
ES6的出现,让前端开发者收获了一份惊喜。ES6中引入了很多新的语法、特性,使开发者能够更加愉悦的编程,给开发者增添了不少编码的乐趣。这是一篇入门级的文章,所以不会详细的讲述ES6中各个新特性的功能及使用,本文更多的是介绍一些新特性,让读者能够先有个大致的了解。
const和let变量
声明变量不再变的无趣,只能使用var进行声明。ES6中新增了两种声明的方式,const和let。const用来声明常量,let用来声明变量。let相对于var,区别在于var声明的变量会被提升到函数(或全局)的作用域,而let声明的变量作用域只在声明所在的{}内。
class类
喜大普奔,JS中终于引入了类的概念,这使得JS语言面向对象的编程更加的简单和易于理解。当你想抽象一个对象的时候,不需要再写个Object对象了,可以使用class,还支持构造函数。ES6中还引入了super和extends关键字,来对类的操作进行扩展。
模块化(Module)
模块化的出现,能够让开发者将一段功能进行封装,然后通过export导出和import导入提高代码的复用率。除此之外,每个模块都有自己的命名空间,防止函数的命名冲突。
箭头函数
箭头函数是最令人激动的特性之一。=>不仅是关键字function的简写,而且不会将内部的this指向进行改变,能够使箭头函数与包围它的代码共享一个this。还记得ES5中经常写的var that = this吗,ES6中可以对它说say bye了。
函数参数默认值
当我们想设置一个函数传入默认值的时候,或者想当我错误的调用一个函数的时候,能够自动规避,怎么办?E5中,我们可以这样写:
function test(param1, param2){
var param1 = param1 || 10;
var param2 = param2 || "test";
}
ES6中提供了函数参数默认值,我们可以更加简略的书写:
function test(param1 = 10, param2 = "test"){
//
}
模板字符串
模板字符串使得字符串的拼接更加的简洁、直观。ES5中,我们可能需要这样写:
var date = "Now date is " + year + " " + month + " " + day + ".";
使用ES6的模板字符串,将变得异常简单:
let date = `Now date is ${year} ${month} ${day}.`
解构赋值
解构赋值语法是JS的一种表达式,它可以方便的从数组或者对象中快速提取值赋给定义的变量。
延展操作符
延展操作符…可以在函数调用/数组构造时,将数组表达式或者string在语法层面展开;还可以在构造对象时,将对象表达式按key-value的方式展开。
对象属性简写
在ES6中允许我们再设置一个对象的属性的时候不指定属性名。例如在ES5中定义一个对象:
var obj = {
year: year,
month: month,
date: date
}
在ES6中,可以进行简写,将重复的键值对只写一个:
let obj = {
year,
month,
date
}
Promise
我们经常会遇到一个页面上同时需要调用多个请求,然后当所有的请求都结束拿到结果后,再执行一个方法。在Promise出现之前,我们可能需要疯狂的使用callback进行回调,陷入回调地狱。Promise的出现,解决了回调陷阱的问题,能够使页面上多个异步的请求均结束返回后,执行下一步操作。