1、# [js function 中的this](https://www.jianshu.com/p/30cb87fc45c3)
2、# [一眼看穿flatMap和map的区别](https://www.cnblogs.com/yucy/p/10260014.html)
>map:map方法返回的是一个object,map将流中的当前元素替换为此返回值;
flatMap:flatMap方法返回的是一个stream,flatMap将流中的当前元素替换为此返回流拆解的流元素;
3、# [async await和promise的区别,和使用方法](https://www.cnblogs.com/web-jscss-dabao/p/12884221.html)
~~~
async function timi(res){
let a=await nvm(2) //这里执行2s //await后面可以跟任何方法,对象
let b=await nvm2(2) //这里执行3s
let c=await nvm(2) //这里再执行2s
console.log(a,b,c) //你等7s,才打印出结果
}
timi() //执行async方法
~~~
4、inserted函数表示当绑定了该指令的元素被插入到dom时候会自动触发
5、# [经典前端面试题: Object.assign 是浅拷贝还是深拷贝?实现深拷贝的方法有哪些?](https://www.cnblogs.com/LVBingo/p/11290637.html)
>当对象中只有一级属性,没有二级属性的时候,此方法为深拷贝,但是对象中有对象的时候,此方法,在二级属性以后就是浅拷贝。
6、# [JavaScript 浅拷贝深拷贝之理解及应用场景](https://www.jianshu.com/p/8014db65e520?tt_from=copy_link)
>深浅拷贝,都是拷贝对象内的数据到新对象,新旧对象内的数据相同。
1.浅拷贝
只拷贝对象的第一层属性,如果对象中还有对象,只是拷贝的内存地址(引用),两者修改会相互影响。用于对象中都是基本数据类型的情况。
2.深拷贝
拷贝对象的多层属性,如果对象中还有对象,会继续拷贝,使用递归实现。
7、# [ReferenceError: XMLHttpRequest is not defined(解决)](https://blog.csdn.net/Janent168/article/details/108826418)
>xmlhttprequest 不是[Node](https://so.csdn.net/so/search?q=Node&spm=1001.2101.3001.7020)内置的,需要单独安装
8、# [浅谈async函数await用法](https://www.cnblogs.com/jeodeng/p/10663869.html)
9、# [es6 ?.与??](https://www.cnblogs.com/qieting/p/15527793.html)
10、@babel/register模块改写require命令,是怎么实现钩子的?
>@babel/register模块改写require命令,是通过Node.js中的Module._compile()方法和Module._extensions对象实现钩子的。 当Node.js执行require命令时,会先检查Module._extensions对象中是否存在当前文件的扩展名对应的钩子函数,如果存在,则使用对应的钩子函数处理当前文件。 @babel/register模块在运行时,会将自己添加到Module._extensions对象中,用于处理.js文件的加载。当Node.js执行require命令加载.js文件时,会调用Module._extensions['.js']方法,在@babel/register模块中,这个方法会将当前.js文件的代码通过Babel进行转译,然后再交由Node.js的原生Module._compile()方法进行编译和执行。 @babel/register模块的实现原理就是利用Node.js提供的模块化机制,实现对.js文件的转译,并通过动态添加钩子函数的方式实现require命令的改写。