分享 6 個(gè)JavaScript學(xué)習(xí)資源

Github 不僅僅是代碼托管平臺(tái),也是一個(gè)學(xué)習(xí)、開(kāi)源存儲(chǔ)庫(kù)、教程和指南手冊(cè)的資源平臺(tái)。通常遇到技術(shù)瓶頸或者有解決不了的問(wèn)題,都會(huì)借助 Github 查找學(xué)習(xí)資源,本文分享6個(gè)JavaScript學(xué)習(xí)資源。
1 .算法和數(shù)據(jù)結(jié)構(gòu)
星數(shù):118 k
網(wǎng)址:https://github.com/trekhleb/javascript-algorithms
在前端框架盛行的年代,很多前端工程師成了框架的使用者,對(duì)于 JavaScript 的數(shù)據(jù)結(jié)構(gòu)都停留在學(xué)校的階段,這個(gè) JavaScript 倉(cāng)庫(kù)是個(gè)不錯(cuò)的資源 。
正如倉(cāng)庫(kù)說(shuō)明那樣,每種算法和數(shù)據(jù)結(jié)構(gòu)都有自己的 README,包含相關(guān)說(shuō)明和鏈接,以便進(jìn)一步閱讀 (還有 YouTube 視頻) 。這對(duì)于學(xué)習(xí)或者提升 JavaScript 技能來(lái)說(shuō)是個(gè)不錯(cuò)的資源,值得收藏翻閱。如果正有意應(yīng)聘字節(jié)跳動(dòng),建議學(xué)習(xí)并掌握這些數(shù)據(jù)結(jié)果和算法。
數(shù)據(jù)結(jié)構(gòu)包括
- 鏈表
- 雙向鏈表
- 隊(duì)列
- 哈希表(散列)
- 堆
- 樹(shù):二叉查找樹(shù)、AVL 樹(shù)、紅黑樹(shù)、線段樹(shù) - 使用 最小/最大/總和 范圍查詢示例、樹(shù)狀數(shù)組 (二叉索引樹(shù))
- 圖(有向圖與無(wú)向圖)
- 布隆過(guò)濾器
算法
- 數(shù)學(xué)
- 集合
- 字符串
- 搜索
- 排序
- 動(dòng)態(tài)規(guī)劃
- 機(jī)器學(xué)習(xí)
2. Node.js 最佳實(shí)踐

星數(shù):69.8 k
網(wǎng)址:https://github.com/goldbergyoni/nodebestpractices
該倉(cāng)庫(kù)是對(duì) Node.js 最佳實(shí)踐中排名靠前的內(nèi)容的總結(jié)和整理,同時(shí)也是目前最大的匯編,每周維持更新。
該倉(cāng)庫(kù)目前包含 80 多個(gè)最佳實(shí)踐、風(fēng)格指南和架構(gòu)技巧,他們也對(duì)貢獻(xiàn)持開(kāi)放態(tài)度,因此請(qǐng)隨意提出包含代碼修復(fù)、翻譯或新想法的拉取請(qǐng)求。
內(nèi)容包括:
- 項(xiàng)目結(jié)構(gòu)
- 錯(cuò)誤處理
- 代碼風(fēng)格
- 進(jìn)入生產(chǎn)階段
- 安全
- Docker
3. 你還不了解的JS

星數(shù):143k
網(wǎng)址:https://github.com/getify/You-Dont-Know-JS
這是一系列深入研究 JavaScript 編程語(yǔ)言核心機(jī)制的電子書(shū)籍,可在 GitHub 上完全免費(fèi)的閱讀,當(dāng)然也可以購(gòu)買。
內(nèi)容包括:
- JavaScript 的發(fā)展歷史及工作原理
- JavaScript 的普遍誤解
- JavaScript基礎(chǔ),例如類型、閉包和原型
4. JavaScript 30

星數(shù):16.3k
網(wǎng)址:https://github.com/wesbos/JavaScript30
這個(gè)是面向想要熟悉 JS 基礎(chǔ)知識(shí)的新手和中級(jí)開(kāi)發(fā)人員,因此需要有一定的 JS 開(kāi)發(fā)經(jīng)驗(yàn),倉(cāng)庫(kù)包含 30 個(gè) JS 項(xiàng)目(從構(gòu)建、入門(mén)文件、視頻教程和代碼解決方案)
5. 整潔代碼
星級(jí):55.6 k
網(wǎng)址:https://github.com/ryanmcdermott/clean-code-javascript
正如倉(cāng)庫(kù)所述,這是使用 JavaScript 生成可靠、可重用和可重構(gòu)軟件的指南。開(kāi)發(fā)人員應(yīng)該盡早嘗試并實(shí)施整潔代碼實(shí)踐,通過(guò)編寫(xiě)整潔的代碼可以節(jié)省大量時(shí)間和精力。
該倉(cāng)庫(kù)介紹了使用JavaScript的整潔代碼概念,并提供了好的和不好的代碼示例。
內(nèi)容包括:
- 變量
- 函數(shù)
- 測(cè)試
- 類
- 對(duì)象和數(shù)據(jù)結(jié)構(gòu)
- 格式化
- 錯(cuò)誤處理
6. 33-js-concepts

每個(gè) JavaScript 開(kāi)發(fā)者都應(yīng)該知道的33個(gè)概念,項(xiàng)目是為了幫助開(kāi)發(fā)者掌握 JavaScript 概念而創(chuàng)立的。
星級(jí):43.1k
網(wǎng)址:https://github.com/leonardomso/33-js-concepts
中文:https://github.com/stephentian/33-js-concepts
內(nèi)容目錄
- 調(diào)用堆棧
- 原始類型
- 值類型和引用類型
- 隱式、 顯式、 名義和鴨子類型
==與===、typeof與instanceofthis、call、apply和bind- 函數(shù)作用域, 塊級(jí)作用域和詞法作用域
- 閉包
map、reduce、filter等高階函數(shù)- 表達(dá)式和語(yǔ)句
- 變量提升
- Promise
- 立即執(zhí)行函數(shù)、模塊化、 命名空間
- 遞歸
- 算法
- 數(shù)據(jù)結(jié)構(gòu)
- 消息隊(duì)列和事件循環(huán)
setTimeout、setInterval和requestAnimationFrame- 繼承、多態(tài)和代碼復(fù)用
- 按位操作符、類數(shù)組對(duì)象和類型化數(shù)組
- DOM 樹(shù)和渲染過(guò)程
- new 與構(gòu)造函數(shù)、
instanceof與實(shí)例 - 原型繼承與原型鏈
Object.create和Object.assign- 工廠函數(shù)和類
- 設(shè)計(jì)模式
- Memoization
- 純函數(shù)、函數(shù)副作用和狀態(tài)變化
- 耗性能操作和時(shí)間復(fù)雜度
- JavaScript 引擎
- 二進(jìn)制、 十進(jìn)制、 十六進(jìn)制、 科學(xué)記數(shù)法
- 偏函數(shù)、柯里化、
Compose和Pipe - 代碼整潔之道
總結(jié)
將上面的學(xué)習(xí)資源按照自己的節(jié)奏理解、學(xué)習(xí)并熟練掌握,足以提高 JavaScript 技能。