概述
EMAScript6
- EMAScript6常识
- 基础方面
- ES6新增特性
- Promise 的特性
- Promise三大方法
- super是什么
- 箭头函数
- 拓展运算符
- for... in 循环的缺点是什么?
EMAScript6常识
专门对ES6知识的小总结
基础方面
- 模板字符串${}(为js提供简单的字符串插值)
- 箭头函数
- For-of(用来遍历实现迭代器接口的数据)
- 获取剩余参数(arr…)拓展运算符代替了arguments对象
- 定义默认参数语法(key=value)
- 提供原生的Promise对象
- 增加let关键字定义块作用域的变量
- 增加const定义常量
- 增加了Symbol数据类型
- ES6规定var和function关键字声明全局变量,属于全局对象的属性。let关键字、const关键字、class关键字声明的全局变量,不属于全局对象的属性。
- 引入module模块的概念等
ES6新增特性
1.EMAScript6 用let和const关键字声明的变量,,let在js新增了块级作用域,EMAScript5没有块级作用域,let和const不可前置,也不能重复定义。const用于定义常量,而且该常量值无法被修改,而let的值是可以修改的;
2.EMAScript6支持解构语法,比如数组结构(var[a,b,c]=[0,1,2]);
3.EMAScript6中不再使用EMAScript5那样用原型继承,而是用class关键字定义类,用extends实现继承;
4.EMAScript6中的函数定义不再用function,而是直接用箭头函数定义函数(“(形参)=>{函数块}”);
5.EMAScript6中可以为形参设置默认参数,如(function 函数名A(x,y=“默认参数”){函数块});
Promise 的特性
EMAScript6提供的Promise原生对象,用来处理异步请求。
- 对象的状态不受外界影响,Promise对象代表一个异步操作,有三种状态:Pending(进行时)、Resolved(成功请求完成)、Rejected(请求失败)。
- 一旦状态改变,就不再改变,任何时候都可以得到两种状态(Resolved、Rejected)返回的结果(Fulfilled和Rejected);
Promise三大方法
- Promise.then()方法接收一个promise成功获取到的数据;
- Promise.catch()方法接收一个promise失败信息;
- Promise.all() 方法接收一个 promise 的 iterable 类型(注:Array,Map,Set 都属于 ES6 的 iterable 类型)的输入,并且只返回一个Promise实例, 那个输入的所有 promise 的 resolve 回调的结果是一个数组。这个Promise的 resolve 回调执行是在所有输入的 promise 的 resolve 回调都结束,或者输入的 iterable 里没有 promise 了的时候。它的 reject 回调执行是,只要任何一个输入的 promise 的 reject 回调执行或者输入不合法的 promise 就会立即抛出错误,并且 reject 的是第一个抛出的错误信息。
super是什么
this的定义时this这个关键字会被替换成一个引用,而super则是super(…)会被替换成一个调用,除了可以在constructor里被直接调用super外,还可以使用super.xxx()来调用父类的某个原型方法,这是一种限定语法。
箭头函数
箭头函数的作用域等于定义时的作用域,一般指向父辈,若父辈无this指向的对象,则往上指,直到widow。通过bind设置的this绑定是无效的。例如:
(function(){
console.log([
(()=>{this.x).bind({x:"inner})(),
(()=>{this.x})
})
])
}).call({x:"outer})
输出的结果为[‘outer’,‘outer’]
拓展运算符
拓展运算符是一种比较特殊的拷贝,只能对第一层数据,对于对象也拷贝一层,拷贝出来的为深拷贝,数据互不干扰。数据是套娃形式,就是浅拷贝。
//深拷贝
let arr = [1,2,3];
let arr1 = [..arr];
arr1[0]=5;
//浅拷贝
let arr = [1,[2,3]]
let arr1 = [...arr]
arr1[1][0] = 5
for… in 循环的缺点是什么?
缺点:
- 数组的键名是数字,但for…in循环以字符串为键名;
- 循环遍历不仅遍历数字键名,还会遍历手动添加的其他键,甚至包括原型链上的键。
- 某些情况下,for…in 循环回以任意顺序遍历键名
- 总而言之,它只为对象遍历而生
最后
以上就是迷人云朵为你收集整理的EMAScript6EMAScript6常识的全部内容,希望文章能够帮你解决EMAScript6EMAScript6常识所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复