ECMAScript 6.0(又称ES2015,以下简称ES6)是JavaScript语言的一种标准,在2015年6月正式发布,它与ES5相比推出了很多重大的语法,目标是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。ES6彻底改变了前端的编码风格,对于前端的影响非常巨大。
1.变量声明方式(let/const)
与var声明不同,let和const声明变量具有块级作用域,且不会进行变量提升( 严格来说,let也存在变量提升,但由于“暂时性死区”的缘故,实际上不能在声明之前使用let变量)。
● const声明的变量必须赋值且基本数据类型的值不允许被修改(数组和对象类型的值可以对其内部进行操作)。
2.箭头函数
1. 箭头函数中没有自己的this。它里面的this就是箭头函数外层的this;
2.箭头函数不能用于声明构造函数。实际上,js里面function声明的函数都有两个内部方法,一个是call,另一个是construct,在不是用new进行调用函数时,函数会调用内部的call方法,而使用new调用时,函数会调用内部的construct方法。而对于箭头函数来说,箭头函数是没有construct的内部方法的,这个就是箭头函数不能作为构造函数的真正原因;
3.箭头函数中无法访问arguments对象。
3.模板字符串(``)
模板字符串是为了解决使用+号拼接字符串的不便利而出现的。它的功能非常强大,但是我们大多数时候使用它则非常简单。
使用 `` 将整个字符串包裹起来,而在其中使用 ${} 来包裹一个变量或者一个表达式。
4.解构赋值
解析结构是一种全新的写法,可以一定程度上简化代码。
对象的写法改变
数组的写法改变
5.函数默认参数
6.扩展运算符(...)
在ES6中用...来表示展开运算符,它可以将数组方法或者对象进行展开。
7.对象字面量与class
8.Promise
Promise是异步编程的一种解决方案,比起传统的解决方案(回调函数和事件),它显得更加的强大和方便。从语法上来讲,Promise是一个对象,从它可以获取异步操作的消息。Promise对象提供统一的API,各种异步操作都可以用同样的方法进行处理。
Promise基本概念:
1. Promise 是一个 构造函数,既然是构造函数,就可以 new Promise() 得到一个 Promise 的实例对象;
2. 在 Promise 上,有两个函数,分别叫做 resolve(成功之后的回调函数) 和 reject(失败之后的回调函数);
3. 在 Promise 构造函数的 Prototype 属性上,有一个 .then() 方法,也就说,只要是 Promise 构造函数创建的实例,都可以访问到 .then() 方法;
4. Promise 表示一个 异步操作;每当我们 new 一个 Promise 的实例,这个实例,就表示一个具体的异步操作;
5. 既然 Promise 创建的实例,是一个异步操作,那么,这个 异步操作的结果,只能有两种状态:
状态1:异步执行成功了,需要在内部调用 成功的回调函数 resolve 把结果返回给调用者;
状态2:异步执行失败了,需要在内部调用 失败的回调函数 reject 把结果返回给调用者;
由于 Promise 的实例,是一个异步操作,所以,内部拿到操作的结果后,无法使用 return 把操作的结果返回给调用者;这时候,只能使用回调函数的形式,来把成功或失败的结果,返回给调用者;
6. 我们可以在 new 出来的 Promise 实例上,调用 .then() 方法,为这个 Promise 异步操作指定成功(resolve)和失败(reject)回调函数。
邮箱:fangbolin@shuweitech.com
发表评论