成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Source Code - JavaScript - 學(xué)習(xí)優(yōu)雅的編碼

zhoutk / 2096人閱讀

摘要:以下全是別人的源碼,會標(biāo)明出處,非常感謝原作者,非常感謝開源。優(yōu)雅源碼,微型庫解讀之的源碼零散短路運(yùn)算符詳情生成的對象是一個(gè)原型為空的對象。簡潔的隊(duì)列賦值短路邏輯判斷初始化更新數(shù)組,簡直不要太優(yōu)雅。

寧靜致遠(yuǎn)。

說明

知識在不斷迭代,除了學(xué)習(xí)資料,那就是學(xué)習(xí)他人,來豐富自己。

以下全是別人的源碼,會標(biāo)明出處,非常感謝原作者,非常感謝開源。

優(yōu)雅

mitt:源碼,微型庫解讀之200byte的EventEmitter - Mitt

axios: 源碼

零散:12 useful hacks

mitt
  // source code
  all = all || Object.create(null);

短路運(yùn)算符:詳情MDN

Object.create(null):生成的對象是一個(gè)原型為空的對象。節(jié)約內(nèi)存且避免沖突,因?yàn)闆]有原型,且普通對象原型上的屬性和方法也相應(yīng)沒有了。

  // source code
  (all[type] || (all[type] = [])).push(handler);
  // my code - bad
  if (all[type]) {
    all[type].push(handler)
  } else {
    all[type] = [handler]
  }

簡潔的隊(duì)列賦值:短路邏輯判斷 + 初始化 + 更新數(shù)組,簡直不要太優(yōu)雅。

  // source code
  all[type].splice(all[type].indexOf(handler) >>> 0, 1);

按位操作符:1 >>> 0 = 1, -1 >>> 0 = 4294967295, 詳情MDN

補(bǔ)充:按位操作符"~",可以結(jié)合.indexOf()使用,因?yàn)閷θ我粩?shù)值 x 進(jìn)行按位非操作的結(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ù)的時(shí)候,相當(dāng)于淺復(fù)制一個(gè)數(shù)組,詳情MDN

axios
  // source code
  別著急
零散
  // source code
  !!(0)             // false
  !!(null)          // false
  !!("")            // false
  !!(undefined)     // false
  !!(NaN)           // false
  
  !!(2)             // true

!!: 強(qiáng)制轉(zhuǎn)換成 boolean 類型,相當(dāng)于 !(!val)。如果 val = 0/null/""/undefined/NaN 時(shí),!!(val) = false,如果 val 是其他值,!!(val) = true

!: 取反運(yùn)算,返回的也是一個(gè) boolean 類型。如果 val = 0/null/""/undefined/NaN 時(shí),!(val) = false,如果 val 是其他值,!(val) = true

  // source code
  +"123456"        // 123456, Number
  +new Date()      // 1527684413484, 相當(dāng)于 new Date().getTime()

+: +val 將字符串?dāng)?shù)字轉(zhuǎn)為數(shù)字。如果 val 是非字符串?dāng)?shù)字,則 +val = NaN

好記性不如爛筆頭。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/95287.html

相關(guān)文章

  • 使用神器Lombok優(yōu)雅編碼

    摘要:提高編碼效率使代碼更簡潔消除冗長代碼避免修改字段名字時(shí)忘記修改方法名提高下逼格以上就是的優(yōu)點(diǎn),當(dāng)然,的優(yōu)點(diǎn)遠(yuǎn)遠(yuǎn)不止以上幾點(diǎn),使用,你可以更加優(yōu)雅高效的編輯代碼。實(shí)戰(zhàn)完成了上述準(zhǔn)備之后,就可以愉快的使用進(jìn)行編碼了。接下來是使用簡化后的代碼。 Lombok介紹 近來偶遇一款擼碼神器,介紹給大家~相信許多小伙伴都深有體會,POJO類中的千篇一律的getter/setter,construct...

    _ang 評論0 收藏0
  • UI5 Source code map機(jī)制細(xì)節(jié)介紹

    摘要:但是當(dāng)時(shí)因?yàn)闀r(shí)間限制,沒有去深入學(xué)習(xí)的更多細(xì)節(jié)。每一位的對應(yīng)含義第一位,表示這個(gè)位置在轉(zhuǎn)換后的壓縮文件的第幾列。第三位,表示這個(gè)位置屬于原始文件的第幾行。第五位,數(shù)組中的索引,表示這個(gè)位置屬于源文件中的哪一個(gè)變量。 在我的博客A debugging issue caused by source code mapping里我介紹了在我做SAP C4C開發(fā)時(shí)遇到的一個(gè)曾經(jīng)困擾我很久的問題,...

    whidy 評論0 收藏0
  • UI5 Source code map機(jī)制細(xì)節(jié)介紹

    摘要:但是當(dāng)時(shí)因?yàn)闀r(shí)間限制,沒有去深入學(xué)習(xí)的更多細(xì)節(jié)。每一位的對應(yīng)含義第一位,表示這個(gè)位置在轉(zhuǎn)換后的壓縮文件的第幾列。第三位,表示這個(gè)位置屬于原始文件的第幾行。第五位,數(shù)組中的索引,表示這個(gè)位置屬于源文件中的哪一個(gè)變量。 在我的博客A debugging issue caused by source code mapping里我介紹了在我做SAP C4C開發(fā)時(shí)遇到的一個(gè)曾經(jīng)困擾我很久的問題,...

    YanceyOfficial 評論0 收藏0
  • JavaScriptSource Map (sourceURL / sourceMappingUR

    摘要:常見的源碼轉(zhuǎn)換,主要是以下三種情況壓縮,減小體積。該項(xiàng)是一個(gè)數(shù)組,表示可能存在多個(gè)文件合并。第一層是行對應(yīng),以分號表示,每個(gè)分號對應(yīng)轉(zhuǎn)換后源碼的一行。在這個(gè)位中,左邊的第一位最高位表示是否連續(xù)。 這兩天完成了自己的個(gè)人任務(wù),準(zhǔn)備學(xué)習(xí)一下前輩們的經(jīng)驗(yàn)教訓(xùn),在項(xiàng)目組的文檔中發(fā)現(xiàn)了一個(gè)要求注意的點(diǎn),如下: Js文件的開頭可以加上類似//@ sourceURL=jquery.extends.j...

    renweihub 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<