es6 笔记

1.基础类型:undefind、null、Boolean、String、number、Object、symbol

2.promise:表示一个异步操作的最终状态(成功或失败),并有结果返回

 特点:1.对象的状态不受外界影响
       2.从pending变为Resolved和从pending变为rejected,状态一旦改变,无法再改变

 优点:1.解决回调地狱
       
 缺点:1.一旦创建立即执行,无法取消
	   2.如果没有设置回调函数,内部发生错误外部无法获取
       3.处于pending状态,无法得知进度

3.Promise.all([]) :

 		1.数组顺序决定结果返回顺序
		  Promise.all([async1,async2])
		  .then(([result1,result2]) =>{
		     //成功业务逻辑
		  }).catch(([reject1,reject2]) => {
		     //失败业务逻辑
		  }
		  
		2.当数据里的Promise状态都变为resolve时, Promise.all状态才变为resolve
		
		3.只要有一个Promise的状态变为reject, Promise.all就变为reject,
		  可以将数组里的Promise看成是 "&&" 关系

4.Promise.race([]):

 与Promise.all相反, race可以看到 是 "||" 关系, 
 只要有一个Promise状态变为resolve, Promise.all 就变为resolve

5.Promise.resolve(返回的数据将成为下一个then函数中的参数)

 Promise.resolve(res)
.then((res) => {
  	 return Promise
 })
 .then((data) => {
 })

6.async:表示方法里有异步操作,返回promise对象 可通过 .then 获取结果
await:后面接的表达式需要等待结果

7.set:

    1.去重类数组 let set = new Set([1,1,2,2,3]); [...set] // [1,2,3]
    2.操作增删改查:add(),delete(),has(),clear()
    3.取值:keys(),values(),entries(),foreach()

8.map:

	1.key可以为任意值,
	2.键值是有序的,
	3.键值对个数可以从 size 属性获取
    4.操作 map.set(),map.get() 、遍历for...of , forEach

9.对象遍历:

	for(let key in obj){obj[key]} , Object.keys(obj).forEach((key) =>{obj[key]})

10.数组遍历:

	for(let value in arr) 
	for(let value of arr) 
	arr.forEach((value,index)=>{})

11.class:

	class exmple { 
		constructor (a)
		{
			this.a = a
		}
	}
    1.公共方法class.prototype.name
    2.静态方法 static name(){}
    3.继承 extends
    4.调用父的构造器 super()
  8.对象解构:`let { key1, key2 = defaultValue, key3:{ key = defaultValue }} = object`

12.数组解构:let [ name1, ...name2 ] = [1,2,3,4] // name1 = 1 , name2 = [2,3,4]

13.剩余参数rest(…):function(value1, ...value2) // value2 = Array

14.拓展运算符…:

  ...[2, 3] // 2 ,3 
  [1,...[2, 3],4] // [1,2,3,4]

  let obj1 = {a:'1', b:'2'} , obj2 = {...obj1, c:'3'} // {a:'1', b:'2', c:'3'}

15.标记模板:String.raw"String" // 不对字符串内‘\’进行转义

16.let const:由于TDZ机制,提升作用域报错

区别:变量、常量 ,定义const的时候必须初始化
    
const:真正不能变的是对该值的引用(内存的指向),值可以被修改 // `const a = Object.freeze(value)` 使值不能被改变

你可能感兴趣的:(es6,es6)