你們好,我是大家的 貓哥,那個不喜歡吃魚、又不喜歡喵 的超級貓 ~javascript
關於貓哥,你們能夠看看個人年終總結 前端工程師的 2020 年終總結 - 乾坤未定,你我皆黑馬。前端
今天給你們推薦 2020 年增加數最多的 10 大頂級前端學習資源項目!java
看完這 10 大頂級項目,你會發現原來 GitHub 上也有這麼多的 JavaScript 學習資源!node
該倉庫包含了多種基於 JavaScript 的算法與數據結構。git
每種算法和數據結構都有本身的 README,包含相關說明和連接,以便進一步閱讀 (還有 YouTube 視頻) 。程序員
數據結構包含了 鏈表、雙向鏈表、隊列、棧、哈希表(散列)、堆、優先隊列、字典樹、樹、優先隊列、二叉查找樹、AVL 樹、紅黑樹、線段樹、樹狀數組、圖、並查集、布隆過濾器github
算法包含了 算法主題 和 算法範式。web
其中算法主題又包含了:數學、集合、字符串、搜索、排序、鏈表、樹、圖、加密、機器學習。面試
算法範式:算法範式是一種通用方法,基於一類算法的設計。這是比算法更高的抽象,就像算法是比計算機程序更高的抽象。算法
算法範式包含了:BF 算法、貪心法、分治法、動態編程、回溯法、Branch & Bound 等等。
這項目還出了對應的教學視頻,總共 81 個視頻講解,每一個視頻大概 5 - 10分鐘左右,還能學習英語哦 😉
youtube 的教學視頻: https://www.youtube.com/playl...
貓哥以前學習算法的時候,也在這個項目中收益良多呢!
並且這個項目還一直有維護和更新內容哦!真的很是不錯的一個項目!
https://github.com/trekhleb/j...
更多算法相關的項目推薦能夠看看這篇文章:7 個 GitHub 上超火的前端學習的數據結構與算法項目
Node.js 最佳實踐。
這個項目是對 Node.js 最佳實踐中排名最高的內容的總結和分享。
這裏是最大的聚集,且每週都在增加 - 當前,超過 50 個最佳實現,樣式指南,架構建議已經呈現。
目錄
好比 錯誤處理最佳實踐 中 使用 Async-Await 和 promises 用於異步錯誤處理
TL;DR: 使用回調的方式處理異步錯誤多是致使災難的最快的方式(a.k.a the pyramid of doom)。對您的代碼來講,最好的禮物就是使用規範的 promise 庫或 async-await 來替代,這會使其像 try-catch 同樣更加簡潔,具備熟悉的代碼結構。
不然: Node.js 回調特性, function(err, response), 是致使不可維護代碼的一個必然的方式。究其緣由,是因爲混合了隨意的錯誤處理代碼,臃腫的內嵌,蹩腳的代碼模式。
https://github.com/goldbergyo...
該項目爲 YDNJS(You Don’t Know JS) 圖書系列,包含一系列深刻探討 JavaScript 語言核心機制的書籍。
內容大綱
https://github.com/getify/You...
優秀的 JS 代碼規範。
好比:對相同類型的變量使用相同的關鍵字
Bad:
getUserInfo(); getClientData(); getCustomerRecord();
Good:
getUser();
再好比:使用可搜索的命名
在開發過程當中,咱們閱讀代碼的時間會遠遠超過編寫代碼的時間,所以保證代碼的可讀性與可搜索會很是重要。
切記,沒事不要坑本身。
Bad:
//525600到底啥意思? for (var i = 0; i < 525600; i++) { runCronJob(); }
Good:
// 聲明爲全局變量 var MINUTES_IN_A_YEAR = 525600; for (var i = 0; i < MINUTES_IN_A_YEAR; i++) { runCronJob(); }
https://github.com/ryanmcdermott/clean-code-javascript
該項目講的是知足你全部開發需求的簡短代碼段,裏面都是些常常會用到並且是很是經典的代碼,很是值得學習!
好比 JavaScript 模塊就分爲了 All、Array、Browser、Date、Function、Math、Node、Object、String 方便學習的。
好比:你必須知道的 4 種 JavaScript 數組方法
Array.prototype.map()
const arr = [1, 2, 3]; const double = x => x * 2; arr.map(double); // [2, 4, 6]
Array.prototype.filter()
const arr = [1, 2, 3]; const isOdd = x => x % 2 === 1; arr.filter(isOdd); // [1, 3]
Array.prototype.reduce()
const arr = [1, 2, 3]; const sum = (x, y) => x + y; arr.reduce(sum, 0); // 6 const increment = (x, y) => [...x, x[x.length - 1] + y]; arr.reduce(increment, [0]); // [0, 1, 3, 6]
Array.prototype.find()
const arr = [1, 2, 3]; const isOdd = x => x % 2 === 1; arr.find(isOdd); // 1
又好比:如何在 JavaScript 中實現睡眠功能?
同步版本
const sleepSync = (ms) => { const end = new Date().getTime() + ms; while (new Date().getTime() < end) { /* do nothing */ } } const printNums = () => { console.log(1); sleepSync(500); console.log(2); console.log(3); }; printNums(); // Logs: 1, 2, 3 (2 and 3 log after 500ms)
異步版本
const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms)); const printNums = async() => { console.log(1); await sleep(500); console.log(2); console.log(3); }; printNums(); // Logs: 1, 2, 3 (2 and 3 log after 500ms)
其實上面講到的事例裏面還提供 api 和方法的講解的,方便讀者能看懂的,這裏就不寫出來了。
還想學更多的 經典 js 代碼片斷,請看下面的倉庫
https://github.com/30-seconds...
這個項目是 JavaScript 編程風格指南。
包含了:類型、對象、數組、字符串、函數、屬性、變量、提高、比較運算符 & 等號、塊、註釋、空白、逗號、分號、類型轉化、命名規則、存取器、構造函數、事件、模塊、jQuery、ECMAScript 5 兼容性、測試、性能、資源、JavaScript 風格指南說明
https://github.com/airbnb/javascript
技術人員求職面試,單刷leetcode上的大廠題庫可能還不夠。
簡歷怎麼寫才能吸引HR的眼光,可能會被技術老大問到哪些常見問題,拿到Offer以後怎樣才能讓本身的優點最大化而後優中選優?
面對這些赤果果的問題,目前就任於Facebook的新加坡小哥Yangshun Tay就整理了一份乾貨。
面試全流程須要注意的事項都在裏面了,包含從簡歷準備、面經和談判全過程,教你如何避雷不踩坑。
精心策劃的內容可幫助您得到下一次技術面試的機會,重點是算法。
除了常見的算法問題外,其餘出色的功能還包括:
https://github.com/yangshun/t...
FreeCodeCamp 是一個自由開源的學習編程的社區,致力於幫助人們利用零散時間學習編程。
它的使命是 Learn to code and help nonprofits(學習編程,去幫助那些非盈利組織)。
FCC 涵蓋 HTML五、CSS、React、JavaScript、Database 等課程,遊戲化程度很是高,學員能夠經過線上聊天室和線下社區活動(Coffee and Code)相互幫助。
目前覆蓋全球 160+ 個國家、1000+ 個城市,40W+ 開發者在平臺學習。
https://github.com/freeCodeCa...
該項目是詳盡的關於前端開發的清單,它列出了將 HTML 頁面投入生產以前須要進行測試的全部元素。
它基於衆多前端開發人員的多年經驗,其中一部分整合自其餘的開源清單。
內容包含:
https://github.com/thedaviddi...
新手上路最開始用的就是基礎的 HTML+CSS+JS 三件套,而在框架和庫愈來愈多的如今,更多的時候使用它們來提升效率是常見的選擇。
這個項目則是反過來,是使用老三件套實現的一些小項目合集,不論是爲了更好理解框架,仍是爲了驗證一下本身的知識水平,從新操刀老三件套都不失爲一個好選擇,要知道不論是什麼框架和庫,基礎都是由這三板斧搭建起來的。
https://github.com/bradtraver...
不知不覺,原創文章已經寫到第 33 期了呢,幾乎每一篇都是貓哥精心挑選的優質開源項目,推送的每一篇文章裏面的項目幾乎都是對前端開發頗有幫助的。
原創不易,一篇優質的文章都是要肝幾個晚上才能肝出來的,花費不少時間、精力去篩選和寫推薦理由,大佬們看完文章後順手點個贊或者轉發吧,給貓哥一點鼓勵吧。
往期精文請看下方寶藏倉庫,請慎入!
https://github.com/FrontEndGitHub/FrontEndGitHub
平時如何發現好的開源項目,能夠看看這篇文章:GitHub 上能挖礦的神仙技巧 - 如何發現優秀開源項目
公衆號: 前端GitHub,專一於挖掘優秀的前端開源項目,抹平你的前端信息不對稱,致力於打造最優質的前端開源項目資源庫。
微信搜 「前端GitHub」,回覆 「電子書」 便可以得到上面 160 本前端精華書籍哦,貓哥 WX:CB834301747 。
往期精文
原創不易,給點鼓勵吧