本文將講解babel是如何運行的,AST的結(jié)構(gòu),以及怎么創(chuàng)建一個babel的插件。 再講babel之前,先不講babel,AST的這些概念,先帶你實現(xiàn)一個簡易的babel解析...
本文將講解babel是如何運行的,AST的結(jié)構(gòu),以及怎么創(chuàng)建一個babel的插件。 再講babel之前,先不講babel,AST的這些概念,先帶你實現(xiàn)一個簡易的babel解析...
通過「換一種思路」來解決「異步」問題Rx.js比async還要好 我們的所有網(wǎng)頁應(yīng)用都是異步的:腳本加載播放器數(shù)據(jù)訪問動畫DOM事件綁定、數(shù)據(jù)事件綁定 異步編程 我們可以看到...
代碼優(yōu)化基本原則易讀性優(yōu)先如果不是性能瓶頸,就不要為了性能而改寫代碼復雜性守恒原則:無論你怎么寫代碼,復雜性都是不會消失的推論:如果邏輯很復雜,那么代碼看起來就應(yīng)該是復雜的。...
標準庫的擴充 underscore.js 擴充了 Array 和 Object 相關(guān) API moment.js 擴充了 Date bluebird.js / hax/my-...
函數(shù)是對象 JS 中對象函數(shù)沒有關(guān)系,JS 之父通過 this 強行使得它們有關(guān)系。 obj.fn.call(obj, 1,2,3) => obj.fn(1,2,3) 1、參...
封裝:就是隱藏細節(jié)比如A對A A對B 繼承:復用之前的代碼更好用 多態(tài):靈活div.childNodes 當把div當成節(jié)點的時候,就調(diào)用節(jié)點的APIdiv.child...
回調(diào)的形式 1、Node.js的error-first形式fs.readFile('./1.txt', (error, content)=>{if(error){// 失敗}...
同步:等待結(jié)果異步:不等待結(jié)果// 同步的 sleepfunction sleep(seconds){var start = new Date()while(new Date...
回調(diào)名詞形式:被當做參數(shù)的函數(shù)就是回調(diào)動詞形式:調(diào)用這個回調(diào)注意回調(diào)跟異步?jīng)]有任何關(guān)系 setTimeout(fn,1000)fn作為參數(shù),所以是回調(diào),然后setTimeou...
每個函數(shù)都有 return如果你不寫 return,就相當于寫了 return undefined 柯里化:將 f(x,y) 變成 f(x=1)(y) 或 f(y=1)x//...
這里的this就是那個元素div,是函數(shù)call的時候傳的第一個參數(shù)——我們的需求是,當div被點擊的時候,調(diào)用view里的onClick方法,但是這里是錯的,是調(diào)不了的同樣...
this 是隱藏的第一個參數(shù),且一般是對象function f(){console.log(this)console.log(arguments)}f.call() // w...
詞法樹 fn2里的console.log(local1)里的local1是哪個local1?先在fn2里找,沒找到的話,就在同一級里找(同一級找不到就往上找),這里只是說明了...