摘要:以下全是別人的源碼,會標明出處,非常感謝原作者,非常感謝開源。優(yōu)雅源碼,微型庫解讀之的源碼零散短路運算符詳情生成的對象是一個原型為空的對象。簡潔的隊列賦值短路邏輯判斷初始化更新數(shù)組,簡直不要太優(yōu)雅。
寧靜致遠。
說明知識在不斷迭代,除了學(xué)習(xí)資料,那就是學(xué)習(xí)他人,來豐富自己。
以下全是別人的源碼,會標明出處,非常感謝原作者,非常感謝開源。
優(yōu)雅mitt:源碼,微型庫解讀之200byte的EventEmitter - Mitt
axios: 源碼
零散:12 useful hacks
mitt// source code all = all || Object.create(null);
短路運算符:詳情MDN
Object.create(null):生成的對象是一個原型為空的對象。節(jié)約內(nèi)存且避免沖突,因為沒有原型,且普通對象原型上的屬性和方法也相應(yīng)沒有了。
// source code (all[type] || (all[type] = [])).push(handler);
// my code - bad if (all[type]) { all[type].push(handler) } else { all[type] = [handler] }
簡潔的隊列賦值:短路邏輯判斷 + 初始化 + 更新數(shù)組,簡直不要太優(yōu)雅。
// source code all[type].splice(all[type].indexOf(handler) >>> 0, 1);
按位操作符:1 >>> 0 = 1, -1 >>> 0 = 4294967295, 詳情MDN
補充:按位操作符"~",可以結(jié)合.indexOf()使用,因為對任一數(shù)值 x 進行按位非操作的結(jié)果為 -(x + 1),即:~-1 = 0
// source code (all[type] || []).slice().map((handler) => { handler(evt); }); (all["*"] || []).slice().map((handler) => { handler(type, evt); });
Array.slice():slice不傳參數(shù)的時候,相當于淺復(fù)制一個數(shù)組,詳情MDN
axios// source code 別著急零散
// source code !!(0) // false !!(null) // false !!("") // false !!(undefined) // false !!(NaN) // false !!(2) // true
!!: 強制轉(zhuǎn)換成 boolean 類型,相當于 !(!val)。如果 val = 0/null/""/undefined/NaN 時,!!(val) = false,如果 val 是其他值,!!(val) = true
!: 取反運算,返回的也是一個 boolean 類型。如果 val = 0/null/""/undefined/NaN 時,!(val) = false,如果 val 是其他值,!(val) = true
// source code +"123456" // 123456, Number +new Date() // 1527684413484, 相當于 new Date().getTime()
+: +val 將字符串數(shù)字轉(zhuǎn)為數(shù)字。如果 val 是非字符串數(shù)字,則 +val = NaN
好記性不如爛筆頭。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/95287.html
摘要:提高編碼效率使代碼更簡潔消除冗長代碼避免修改字段名字時忘記修改方法名提高下逼格以上就是的優(yōu)點,當然,的優(yōu)點遠遠不止以上幾點,使用,你可以更加優(yōu)雅高效的編輯代碼。實戰(zhàn)完成了上述準備之后,就可以愉快的使用進行編碼了。接下來是使用簡化后的代碼。 Lombok介紹 近來偶遇一款擼碼神器,介紹給大家~相信許多小伙伴都深有體會,POJO類中的千篇一律的getter/setter,construct...
摘要:但是當時因為時間限制,沒有去深入學(xué)習(xí)的更多細節(jié)。每一位的對應(yīng)含義第一位,表示這個位置在轉(zhuǎn)換后的壓縮文件的第幾列。第三位,表示這個位置屬于原始文件的第幾行。第五位,數(shù)組中的索引,表示這個位置屬于源文件中的哪一個變量。 在我的博客A debugging issue caused by source code mapping里我介紹了在我做SAP C4C開發(fā)時遇到的一個曾經(jīng)困擾我很久的問題,...
摘要:但是當時因為時間限制,沒有去深入學(xué)習(xí)的更多細節(jié)。每一位的對應(yīng)含義第一位,表示這個位置在轉(zhuǎn)換后的壓縮文件的第幾列。第三位,表示這個位置屬于原始文件的第幾行。第五位,數(shù)組中的索引,表示這個位置屬于源文件中的哪一個變量。 在我的博客A debugging issue caused by source code mapping里我介紹了在我做SAP C4C開發(fā)時遇到的一個曾經(jīng)困擾我很久的問題,...
摘要:常見的源碼轉(zhuǎn)換,主要是以下三種情況壓縮,減小體積。該項是一個數(shù)組,表示可能存在多個文件合并。第一層是行對應(yīng),以分號表示,每個分號對應(yīng)轉(zhuǎn)換后源碼的一行。在這個位中,左邊的第一位最高位表示是否連續(xù)。 這兩天完成了自己的個人任務(wù),準備學(xué)習(xí)一下前輩們的經(jīng)驗教訓(xùn),在項目組的文檔中發(fā)現(xiàn)了一個要求注意的點,如下: Js文件的開頭可以加上類似//@ sourceURL=jquery.extends.j...
閱讀 2772·2021-11-02 14:42
閱讀 3163·2021-10-08 10:04
閱讀 1184·2019-08-30 15:55
閱讀 1025·2019-08-30 15:54
閱讀 2311·2019-08-30 15:43
閱讀 1680·2019-08-29 15:18
閱讀 863·2019-08-29 11:11
閱讀 2362·2019-08-26 13:52