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命令的改寫。