1.Generator函数
作用:Generator与Promise一样,都用来执行异步操作;
形式:
//带*号的函数表示Gentrator函数
function *myGentrator(){
/代码片段1/
yelid:/
代码片段2
/
yelid:/代码片段3/
}
let b=myGentrator();//执行代码1
b.next();//执行代码2
b.next();//执行代码3
总结:通过使用yeild关键字来暂停代码,而通过next()来继续执行下一个代码段。
2.Map,FlatMap,Reduce
Map的作用是遍历数组,然后对每一个元素做一些变换,返回新的数组。
[1,2,3].map((v)=>{v+1});
//得到的结果是[2,3,4]
FlatMap相当于Flatten+Map,可以先将数组扁平化,然后再进行Map操作
[1,[2],3].map((v)=>{v+1}));
//返回的结果是[2,3,4]
Reduce经常用作累加器
3.async和await
async myfunction{
let value=await fn();//await关键字只能用于async函数中,并且必须等待await后面的函数执行完成,才会继续执行后面的代码
//后面的代码
}
4.垃圾回收机制
1.作用
内存是有限制的,用不到的变量就清除掉,才能保证内存被循环使用
2.方法
1.标记清除
先给所有的变量做标记,然后清除掉“环境中的变量”以及“被环境中的变量引用的变量”的标记,清除过后仍然带有标记的变量就是应该清除掉的变量
2.引用计数
记录一个变量现在被引用的次数,为0时就清除掉,不为0时就不清除。