{"id":20012826,"url":"https://github.com/hijiangtao/fe-cookbook","last_synced_at":"2025-04-09T20:05:02.174Z","repository":{"id":50450391,"uuid":"83287047","full_name":"hijiangtao/FE-Cookbook","owner":"hijiangtao","description":"HTML/CSS \u0026 JavaScript, Web and related. 前端手册","archived":false,"fork":false,"pushed_at":"2022-06-29T03:11:52.000Z","size":639,"stargazers_count":294,"open_issues_count":0,"forks_count":36,"subscribers_count":22,"default_branch":"master","last_synced_at":"2025-04-09T20:04:58.115Z","etag":null,"topics":["css","frontend","frontend-basis","frontend-developer","html","javascript","nodejs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hijiangtao.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-02-27T08:33:20.000Z","updated_at":"2025-03-17T12:23:08.000Z","dependencies_parsed_at":"2022-08-30T14:51:07.203Z","dependency_job_id":null,"html_url":"https://github.com/hijiangtao/FE-Cookbook","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hijiangtao%2FFE-Cookbook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hijiangtao%2FFE-Cookbook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hijiangtao%2FFE-Cookbook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hijiangtao%2FFE-Cookbook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hijiangtao","download_url":"https://codeload.github.com/hijiangtao/FE-Cookbook/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248103868,"owners_count":21048245,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["css","frontend","frontend-basis","frontend-developer","html","javascript","nodejs"],"created_at":"2024-11-13T07:33:30.206Z","updated_at":"2025-04-09T20:05:02.145Z","avatar_url":"https://github.com/hijiangtao.png","language":"JavaScript","readme":"# FE-Cookbook\n\n[![GitHub contributors](https://img.shields.io/github/contributors/hijiangtao/FE-Cookbook.svg)]() [![GitHub issues](https://img.shields.io/github/issues/hijiangtao/FE-Cookbook.svg)]() [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](#contribute) [![license](https://img.shields.io/github/license/hijiangtao/FE-Cookbook.svg)]() [![Travis](https://img.shields.io/travis/hijiangtao/FE-Cookbook/master.svg)]()\n\n在从事前端开发的时光中，从日常大牛的博客、动态中能零零散散看到不少好的技术文章，同时也看了不少前端书籍，包括《JavaScript 高级程序设计》、《JavaScript 语言精粹》、《HTML5高级程序设计》、《You Don't Know JS》系列、《CSS揭秘》等等，也针对很多方面的问题进行了细致的探索和查漏补缺，比如 CSS3 弹性盒布局、Hybrid App 唤起实现、Web 加载渲染性能、WebAssembly 等等，因此想通过这个项目把个人持续关注的前端相关内容汇总收集，一方面方便自己和其他同学日后查看、另一方面希望与有同样兴趣的同学一起将该项目完善壮大。\n\n本项目持续更新中，如果觉得有用欢迎给项目添加 Star；如果觉得有任何需要改进或者需要完善的地方，欢迎贡献代码提请 PR，针对无冲突的内容我会快速合并。希望为前端圈贡献一些自己的力量。\n\n根据个人理解，本项目分为以下六个部分，见目录\n\n## Outline / 目录\n\n* 读书笔记与计算机书籍\n* 基础概念与常用框架\n* 构建流程与技术文章\n* [QA](#算法与面试题) - 校招/社招前端笔试面试题汇总，计划纳入上百道题，正在持续更新中；\n* [LeetCodeOJ](https://github.com/hijiangtao/LeetCodeOJ) - 用 JavaScript 刷算法题的一个项目集锦；\n\n----\n\n## 读书笔记与计算机书籍\n\n| 类别       | 读书笔记名称                                                                                                                                  | 备注 |\n|------------|-----------------------------------------------------------------------------------------------------------------------------------------------|------|\n| HTML       | [HTML5高级程序设计读书笔记](./HTML.md): 根据《HTML5高级程序设计》一书整理的有关 HTML5 新兴 API 相关的知识点。|      |\n| CSS        | [CSS3 知识点整理](./CSS3.md) |      |\n| JavaScript | [JavaScript 高级程序设计笔记](./JavaScript.md): 根据《JavaScript 高级程序设计》一书整理的知识点，将 JavaScript 及浏览器等相关内容梳理了一遍。 |      |\n| JavaScript | [You Don't Know JS 章节要点整理](./YDKJS.md): 《You Don't Know JS》一书共六本，根据每个章节总结的知识点进行罗列，可以快速阅览 JavaScript 不为人知的一些设计细节，中文书籍见 [GitBook](https://hijiangtao.gitbook.io/ydkjs/)。 |      |\n| Node.js    | [深入理解 Node.js：核心思想与源码分析](https://yjhjstz.gitbooks.io/deep-into-node/content/) |      |\n| JavaScript | [Google 官方 PWA 天气预报程序代码](./PWA/) - 根据 Google 官方教程指导实现的天气预报 PWA 程序代码 | |\n| Docker | [Docker 核心技术与实现原理](https://draveness.me/docker) | |\n| 数据库 | [关系型数据库工作原理](http://blog.jobbole.com/100349/) ||\n\n## 基础概念与常用框架\n\n### 基础概念\n\n* [World Wide Web](https://en.wikipedia.org/wiki/World_Wide_Web)\n* [渲染性能](https://developers.google.com/web/fundamentals/performance/rendering/)\n\n## 构建流程与技术文章\n\n### 知识点框架\n\n* webpack - TBD\n* Vue - TBD\n* React - TBD\n* Angular - TBD\n* RxJS - TBD\n* TypeScript - TBD\n\n### 前端相关基础技术文章\n\n1. [Understanding JavaScript’s async await](https://ponyfoo.com/articles/understanding-javascript-async-await)\n2. [6 Reasons Why JavaScript’s Async/Await Blows Promises Away](https://hackernoon.com/6-reasons-why-javascripts-async-await-blows-promises-away-tutorial-c7ec10518dd9)\n3. [An Introduction to Source Maps](http://blog.teamtreehouse.com/introduction-source-maps)\n4. [Babel 入门教程](http://www.ruanyifeng.com/blog/2016/01/babel.html)\n5. [How to use SVG as a Placeholder, and Other Image Loading Techniques](https://medium.freecodecamp.org/using-svg-as-placeholders-more-image-loading-techniques-bed1b810ab2c)\n6. [Understanding Node.js Event-Driven Architecture](https://medium.freecodecamp.org/understanding-node-js-event-driven-architecture-223292fcbc2d)\n7. [Comparing JavaScript Templating Engines: Jade, Mustache, Dust and More](https://developer.ibm.com/node/2014/11/11/compare-javascript-templates-jade-mustache-dust/)\n8. [JSON Web Tokens vs. Session Cookies In Practice](https://ponyfoo.com/articles/json-web-tokens-vs-session-cookies)\n9. [ES6 In Depth: Modules](https://hacks.mozilla.org/2015/08/es6-in-depth-modules/)\n10. [Why (and how) to use eslint in your project](https://medium.com/the-node-js-collection/why-and-how-to-use-eslint-in-your-project-742d0bc61ed7)\n11. [Speed up Your Node.js App with Native Addons](https://medium.com/the-node-js-collection/speed-up-your-node-js-app-with-native-addons-5e76a06f4a40)\n12. [Ten Things A Serious JavaScript Developer Should Learn](https://benmccormick.org/2017/07/19/ten-things-javascript/)\n13. [Await and Async Explained with Diagrams and Examples](http://nikgrozev.com/2017/10/01/async-await/)\n14. [But really, what is a JavaScript test?](https://blog.kentcdodds.com/but-really-what-is-a-javascript-test-46fe5f3fad77)\n15. [What the Fu*k JavaScript: A list of funny and tricky JavaScript examples](https://github.com/denysdovhan/wtfjs?utm_source=mybridge\u0026utm_medium=email\u0026utm_campaign=read_more)\n16. [Modern JavaScript Explained For Dinosaurs](https://medium.com/@peterxjang/modern-javascript-explained-for-dinosaurs-f695e9747b70?utm_source=mybridge\u0026utm_medium=email\u0026utm_campaign=read_more)\n17. [Modern JavaScript for Ancient Web Developers](https://trackchanges.postlight.com/modern-javascript-for-ancient-web-developers-58e7cae050f9?utm_source=mybridge\u0026utm_medium=email\u0026utm_campaign=read_more)\n18. [The Basics of DOM Manipulation in Vanilla JavaScript (No jQuery) — SitePoint](https://www.sitepoint.com/dom-manipulation-vanilla-javascript-no-jquery?utm_source=mybridge\u0026utm_medium=email\u0026utm_campaign=read_more)\n19. [The Cost Of JavaScript - Addy Osmani](https://medium.com/dev-channel/the-cost-of-javascript-84009f51e99e?utm_source=mybridge\u0026utm_medium=email\u0026utm_campaign=read_more)\n20. [JavaScript Start-up Performance - Addy Osmani](https://medium.com/@addyosmani/javascript-start-up-performance-69200f43b201?utm_source=mybridge\u0026utm_medium=email\u0026utm_campaign=read_more)\n21. [How JavaScript works: memory management + how to handle 4 common memory leaks](https://blog.sessionstack.com/how-javascript-works-memory-management-how-to-handle-4-common-memory-leaks-3f28b94cfbec?utm_source=mybridge\u0026utm_medium=email\u0026utm_campaign=read_more)\n22. [How JavaScript works: Event loop and the rise of Async programming + 5 ways to better coding with async/await](https://blog.sessionstack.com/how-javascript-works-event-loop-and-the-rise-of-async-programming-5-ways-to-better-coding-with-2f077c4438b5?utm_source=mybridge\u0026utm_medium=email\u0026utm_campaign=read_more)\n23. [How JavaScript works: inside the V8 engine + 5 tips on how to write optimized code](https://blog.sessionstack.com/how-javascript-works-inside-the-v8-engine-5-tips-on-how-to-write-optimized-code-ac089e62b12e?utm_source=mybridge\u0026utm_medium=email\u0026utm_campaign=read_more)\n24. [Understanding V8’s Bytecode](https://medium.com/dailyjs/understanding-v8s-bytecode-317d46c94775?utm_source=mybridge\u0026utm_medium=email\u0026utm_campaign=read_more)\n25. [How JavaScript works: an overview of the engine, the runtime, and the call stack](https://blog.sessionstack.com/how-does-javascript-actually-work-part-1-b0bacc073cf?utm_source=mybridge\u0026utm_medium=email\u0026utm_campaign=read_more)\n26. [Build a state management system with vanilla JavaScript](https://css-tricks.com/build-a-state-management-system-with-vanilla-javascript/)\n27. [Inside look at modern web browser (part 2)](https://developers.google.com/web/updates/2018/09/inside-browser-part2)\n28. \\[Paper\\] [Measuring the User Experience on a Large Scale: User-Centered Metrics for Web Applications](./assets/pdf/36299.pdf)\n29. [Mouse events basics](https://javascript.info/mouse-events-basics)\n\n### Web 开发教程与最佳实践\n\n* [HTTP协议入门](http://www.ruanyifeng.com/blog/2016/08/http.html)\n* [How to center in CSS](http://howtocenterincss.com/)\n* [正则表达式30分钟入门教程](https://deerchao.net/tutorials/regex/regex.htm)\n* [在安卓设备上使用 Chrome 远程调试功能](http://wiki.jikexueyuan.com/project/chrome-devtools/remote-debugging-on-android.html)\n* [关于通过H5页面唤Native户端的介绍](https://github.com/AlanZhang001/H5CallUpNative)\n* [前端性能优化最佳实践](https://csspod.com/frontend-performance-best-practices/)\n* [The Cost Of JavaScript](https://medium.com/dev-channel/the-cost-of-javascript-84009f51e99e)\n* [SSL/TLS协议运行机制的概述](http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html) | [图解SSL/TLS协议](http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html)\n* The 12-Factor App - [简体中文](https://12factor.net/zh_cn/) | [原版](https://12factor.net/)\n* [JavaScript 运行机制详解：再谈Event Loop](http://www.ruanyifeng.com/blog/2014/10/event-loop.html)\n* [web worker详解](http://xgfe.github.io/2017/05/03/LexHuang/web-worker/)\n* [A simple interactive ES6 Feature list](https://codetower.github.io/es6-features?utm_source=mybridge\u0026utm_medium=email\u0026utm_campaign=read_more)\n* [Airbnb Javascript Styleguide](https://github.com/airbnb/javascript?utm_source=mybridge\u0026utm_medium=email\u0026utm_campaign=read_more)\n* [How I rediscovered my love for JavaScript after throwing 90% of it in the trash.](https://hackernoon.com/how-i-rediscovered-my-love-for-javascript-after-throwing-90-of-it-in-the-trash-f1baed075d1b?utm_source=mybridge\u0026utm_medium=email\u0026utm_campaign=read_more)\n* [80 Linux Monitoring Tools](https://blog.serverdensity.com/80-linux-monitoring-tools-know/)\n* [The Modern JavaScript Tutorial](http://javascript.info/)\n* [Abortable fetch](https://developers.google.com/web/updates/2017/09/abortable-fetch)\n* [Removing jQuery from GitHub.com frontend](https://githubengineering.com/removing-jquery-from-github-frontend/)\n\n### Web 开发利器与书籍\n\n* [The birth and death of JavaScript](https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript)\n* [cssreference.io](http://cssreference.io/) - A free visual guide to CSS.\n* [JavaScript equality table](http://dorey.github.io/JavaScript-Equality-Table/)\n* [Color Picker](http://colorizer.org/)\n* [Simple Icons](https://simpleicons.org/), SVG icons for popular brands\n* [Web Page Test](https://www.webpagetest.org/) - Test a website's performance\n* [Web Manifest Validator](https://manifest-validator.appspot.com/) - Test the validity of a Web Manifest\n* [Modern-js-cheatsheet: Cheatsheet for the JavaScript knowledge you will frequently encounter in modern projects.](https://github.com/mbeaudru/modern-js-cheatsheet?utm_source=mybridge\u0026utm_medium=email\u0026utm_campaign=read_more)\n* [Exploring ES2018 and ES2019](http://exploringjs.com/es2018-es2019/index.html)\n* [Git Cheat Sheet](./sheet/zt_git_cheat_sheet.pdf)\n* [PreLoaders](https://icons8.com/preloaders/) - Loading 动画收集网站\n* [Modernizr](https://github.com/Modernizr/Modernizr) - 针对浏览器中的 HTML5 和 CSS3 功能支持度检测库\n* [Webpack Visualizer](https://chrisbateman.github.io/webpack-visualizer/)\n* [Source Map Explorer](https://github.com/danvk/source-map-explorer)\n\n### 打包与构建\n\n* [webpack](http://webpack.github.io/) | [webpack 学习与起步教程](./config/webpack.md) | [webpack 配置文件样例](./config/webpack.config.js)\n* [JSLint](http://www.jslint.com/) - The JavaScript Code Quality Tool\n* [WebAssembly](http://webassembly.org/) - A new portable, size- and load-time-efficient format suitable for compilation to the web.\n* [wasm-pack](https://github.com/rustwasm/wasm-pack) - rust -\u003e wasm workflow tool!\n* Dependency injection\n  - [Dependency injection in JavaScript](https://krasimirtsonev.com/blog/article/Dependency-injection-in-JavaScript)\n  - [控制反转](https://zh.wikipedia.org/wiki/%E6%8E%A7%E5%88%B6%E5%8F%8D%E8%BD%AC)\n\n### CSS 相关文章\n\n* [学习 CSS 布局](http://zh.learnlayout.com/)\n* [深入理解 CSS3 弹性盒布局模型](https://www.ibm.com/developerworks/cn/web/1409_chengfu_css3flexbox/)\n* [Color](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value) - MDN\n* [移动端 1px 细线解决方案总结](http://www.cnblogs.com/lunarorbitx/p/5287309.html)\n* [CSS像素、物理像素、逻辑像素、设备像素比、PPI、Viewport](https://github.com/jawil/blog/issues/21)\n* [学习使用：before和：after伪元素](http://www.w3cplus.com/css3/learning-to-use-the-before-and-after-pseudo-elements-in-css.html)\n* [Android 浏览器文本垂直居中问题](http://imweb.io/topic/5848d0fc9be501ba17b10a94)\n\n### 会议\n\n* ELECTRON \u0026 DESKTOP JS \u003chttp://www.covalenceconf.com/\u003e\n\n#### WebAssembly 中文教程资源\n\n* WebAssembly 系列（一）[生动形象地介绍 WebAssembly](https://zhuanlan.zhihu.com/p/25800318)\n* WebAssembly 系列（二）[JavaScript Just-in-time (JIT) 工作原理](https://zhuanlan.zhihu.com/p/25669120)\n* WebAssembly 系列（三）[编译器如何生成汇编](https://zhuanlan.zhihu.com/p/25718411)\n* WebAssembly 系列（四）[WebAssembly 工作原理](https://zhuanlan.zhihu.com/p/25754084)\n* WebAssembly 系列（五）[为什么 WebAssembly 更快](https://zhuanlan.zhihu.com/p/25773367)\n* WebAssembly 系列（六）[WebAssembly 的现在与未来](https://zhuanlan.zhihu.com/p/25799683)\n\n## 算法与面试题\n\n### 面试题汇总\n\n由于从校招实习到校招提前批，一直在学习前端相关的基础知识并针对具体遇到的细节进行查漏补缺，零零散散发现很多内容值得反复回顾，所以将自己看到过认为还比较经典的题目汇总到这里，供大家参考。欢迎有兴趣的同学一起建设该部分，针对你擅长的部分添加问题与回答并提请 PR，问题格式参考各细分文件。\n\n本部分内容大致分为以下几个方面：\n\n| 类别       | 面试题地址                          | 内容 |\n|------------|-------------------------------------|------------|\n| HTML       | [面试题](./Interview/HTML.md)       ||\n| CSS        | [面试题](./Interview/CSS.md)        ||\n| JavaScript | [面试题](./Interview/JavaScript.md) ||\n| TypeScript | [面试题](./Interview/TypeScript.md) ||\n| Node.js    | [面试题](./Interview/Node.md)       ||\n| HTTP       | [面试题](./Interview/HTTP.md)       ||\n| Linux      | [面试题](./Interview/Linux.md)      ||\n| Angular    | [面试题](./Interview/Angular.md)    ||\n\n本部分面试题在整理过程中有参考自如下内容源：\n\n* \u003chttps://github.com/markyun/My-blog/tree/master/Front-end-Developer-Questions/Questions-and-Answers\u003e\n* \u003chttps://sites.google.com/site/amitsciscozone/home/security/ssl-connection-setup\u003e\n* \u003chttp://robertheaton.com/2014/03/27/how-does-https-actually-work/\u003e\n* \u003chttp://www.cnblogs.com/lixiansen/p/5618541.html\u003e\n* \u003chttp://harttle.com/2016/01/22/doctype.html\u003e\n* \u003chttp://jerryzou.com/posts/cookie-and-web-storage/\u003e\n* \u003chttps://www.zhihu.com/question/20653055/answer/17786008\u003e\n* \u003chttps://developer.mozilla.org/zh-CN/docs/Web/HTML/Global_attributes\u003e\n* \u003chttp://blog.csdn.net/NJUPT_T/article/details/50700209\u003e\n* \u003chttp://web.jobbole.com/84826/\u003e\n* \u003chttp://web.jobbole.com/85340/\u003e\n* \u003chttp://blog.csdn.net/i10630226/article/details/54880363\u003e\n* \u003chttp://www.ruanyifeng.com/blog/2015/04/generator.html\u003e\n* \u003chttps://hijiangtao.github.io/2019/08/31/Webpack-Basic-Concepts/\u003e\n* \u003chttps://hijiangtao.github.io/2019/12/01/Introduction-of-webpack-plugin/\u003e\n* \u003chttps://developer.mozilla.org/zh-CN/docs/WebAssembly/Concepts\u003e\n* \u003chttp://www.ruanyifeng.com/blog/2017/05/websocket.html\u003e\n\n### LeetCode\n\n[用 JavaScript 刷 LeetCode](https://github.com/hijiangtao/LeetCodeOJ)\n\n## Contribute\n\n非常欢迎为该项目增加内容，共同完善前端技术整理。请 Fork 之后提交代码后发起 PR。\n\n## LICENSE\n\nApache 2.0\n\n## Contact\n\nJoe Jiang, [Email](mailto:hijiangtao@gmail.com)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhijiangtao%2Ffe-cookbook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhijiangtao%2Ffe-cookbook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhijiangtao%2Ffe-cookbook/lists"}