进阶 JavaScript 必知的 33 个点【进阶必备】
哈喽,大家好 我是
xy
👨🏻💻。试问有多少人敢在自己的简历上写下精通JavaScript
的,起码我是不敢这样写的 😂。
简介
这篇文章主要是为了帮助开发者掌握 JavaScript
概念而创立的。它不是必备,但在未来学习(JavaScript)中,可以作为一篇指南
。
目录
-
调用堆栈
-
原始类型
-
值类型和引用类型
-
隐式, 显式, 名义和鸭子类型
-
== 与 ===, typeof 与 instanceof
-
this, call, apply 和 bind
-
函数作用域, 块级作用域和词法作用域
-
闭包
-
map, reduce, filter 等高阶函数
-
表达式和语句
-
变量提升
-
Promise
-
立即执行函数, 模块化, 命名空间
-
递归
-
算法
-
数据结构
-
消息队列和事件循环
-
setTimeout, setInterval 和 requestAnimationFrame
-
继承, 多态和代码复用
-
按位操作符, 类数组对象和类型化数组
-
DOM 树和渲染过程
-
new 与构造函数, instanceof 与实例
-
原型继承与原型链
-
Object.create 和 Object.assign
-
工厂函数和类
-
设计模式
-
Memoization
-
纯函数, 函数副作用和状态变化
-
耗性能操作和时间复杂度
-
JavaScript 引擎
-
二进制, 十进制, 十六进制, 科学记数法
-
偏函数, 柯里化, Compose 和 Pipe
-
代码整洁之道
1. 调用堆栈
文章
-
📖 Call Stack — MDN
(https://developer.mozilla.org/zh-CN/docs/Glossary/Call_stack) -
📖 [译] JavaScript 如何工作:对引擎、运行时、调用堆栈的概述 —— 掘金
(https://juejin.im/post/5a05b4576fb9a04519690d42) -
📖 [译] 理解 JavaScript 中的执行上下文和执行栈 —— 掘金
(https://juejin.im/post/5ba32171f265da0ab719a6d7) -
📖 这一次,彻底弄懂 JavaScript 执行机制 —— 掘金
(https://juejin.im/post/59e85eebf265da430d571f89) -
📖 解读 JavaScript 之引擎、运行时和堆栈调用 —— 开源中国
(https://www.oschina.net/translate/how-does-javascript-actually-work-part-1) -
📖 Tasks, microtasks, queues and schedules —— Jake Archibald
:https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/ -
📖 Tasks, microtasks, queues and schedules(译) —— 掘金
(https://juejin.im/entry/55dbd51a60b2f3a92a8f5bff)
视频
-
📺 What is the event loop anyway? —— 腾讯视频(英文字幕)
(https://v.qq.com/x/page/h0372bld8re.html?ptag=qqbrowser) -
📺 Understanding The JavaScript Call Stack, Event Queue, Event Table, & Event Loop —— Bilibili
(https://www.bilibili.com/video/av33824933/) -
📺 JS 中的变量提升、堆栈内存及闭包详解 —— Acfun
(http://www.acfun.cn/v/ac4495641) -
📺 事件循环模型 —— PHP 中文网
(http://www.php.cn/code/21194.html) -
📺 Javascript: the Call Stack explained — Coding Blocks India
(https://www.youtube.com/watch?v=w6QGEiQceOM) -
📺 The JS Call Stack Explained In 9 Minutes — Colt Steele
(https://www.youtube.com/watch?v=W8AeMrVtFLY) -
📺 JavaScript Execution Stack — Codecademy
(https://www.youtube.com/watch?v=jT0USJeNFEA) -
📺 What is the Call Stack? — Eric Traub
(https://www.youtube.com/watch?v=w7QWQlkLY_s) -
📺 The Call Stack — Kevin Drumm
(https://www.youtube.com/watch?v=Q2sFmqvpBe0) -
📺 Understanding JavaScript Execution — Codesmith
(https://www.youtube.com/watch?v=Z6a1cLyq7Ac&list=PLWrQZnG8l0E4kd1T_nyuVoxQUaYEWFgcD) -
📺 Call Stack & Event Loop — movies com
(https://www.youtube.com/watch?v=mk0lu9MKBto)
2. 原始类型
文章
-
📖 原始数据 —— MDN
(https://developer.mozilla.org/zh-CN/docs/Glossary/Primitive) -
📖 [译]JavaScript 是怎样编码数字的 —— SegmentFault
(https://segmentfault.com/a/1190000017090272) -
📖 每一个 JavaScript 开发者应该了解的浮点知识 —— 颜海镜
(https://yanhaijing.com/javascript/2014/03/14/what-every-javascript-developer-should-know-about-floating-points/) -
📖 JavaScript 标准参考教程(基本语法之数值) —— 阮一峰
(https://wangdoc.com/javascript/types/number.html) -
📖 The Secret Life of JavaScript Primitives —— Angus Croll
(https://javascriptweblog.wordpress.com/2010/09/27/the-secret-life-of-javascript-primitives/)
视频
-
📺 javascript 六种数据类型 —— 慕课网
(https://www.imooc.com/video/5674) -
📺 javascript 视频教程(数据类型) —— PHP 中文网
(http://www.php.cn/code/5808.html) -
📺 JavaScript Reference vs Primitive Types — Academind
(https://www.youtube.com/watch?v=9ooYYRLdg_g) -
📺 JavaScript Primitive Types — Simon Sez IT
(https://www.youtube.com/watch?v=HsbWQsSCE5Y) -
📺 Javascript Primitive and Reference Types — Baljeet Singh
(https://www.youtube.com/watch?v=F7YbhKbpFic) -
📺 Value Types and Reference Types in JavaScript — Programming with Mosh
(https://www.youtube.com/watch?v=e-_mDyqm2oU) -
📺 JavaScript Primitive Data Types — Avelx
(https://www.youtube.com/watch?v=qw3j0A3DIzQ) -
📺 Everything you never wanted to know about JavaScript numbers — Bartek Szopka
(https://www.youtube.com/watch?v=MqHDDtVYJRI)
3. 值类型和引用类型
文章
-
📖 ECMAScript 引用类型 —— W3school
(http://www.w3school.com.cn/js/pro_js_referencetypes.asp) -
📖 js 中的值类型和引用类型的区别 —— 博客园
(https://www.cnblogs.com/leiting/p/8081413.html) -
📖 JavaScript 的值传递和引用传递 —— FunDebug
(https://blog.fundebug.com/2017/08/09/explain_value_reference_in_js/) -
📖 Primitive Types & Reference Types in JavaScript —— Bran van der Meer
(https://docstore.mik.ua/orelly/webprog/jscript/ch04_04.htm) -
📖 JavaScript: Passing by Value or by Reference —— CSDN
(https://blog.csdn.net/xiaojia_boke/article/details/54906509) -
📖 js 值引用和值复制 —— SegmentFault
(https://segmentfault.com/a/1190000015411195) -
📖 js- 引用和复制(传值和传址) —— CSDN
(https://blog.csdn.net/zzzaquarius/article/details/4902235)
视频
-
📺 Javascript Pass by Value vs Pass by Reference — techsith
(https://www.youtube.com/watch?v=E-dAnFdq8k8) -
📺 JavaScript Value vs Reference Types — Programming with Mosh
(https://www.youtube.com/watch?v=fD0t_DKREbE)
4. 隐式, 显式, 名义和鸭子类型
文章
-
📖 ECMAScript 类型转换 —— W3school
(http://www.w3school.com.cn/js/pro_js_typeconversion.asp) -
📖 JavaScript 的怪癖 1:隐式类型转换 —— justjavac
(http://justjavac.com/javascript/2013/04/08/javascript-quirk-1-implicit-conversion-of-values.html) -
📖 JavaScript 运算符规则与隐式类型转换详解 —— 掘金
(https://juejin.im/post/59ad2585f265da246a20e026) -
📖 聊一聊 JS 中的隐式类型转换 —— SegmentFault
(https://segmentfault.com/a/1190000004482388) -
📖 有趣的 JavaScript 隐式类型转换 —— 博客园
(https://www.cnblogs.com/yugege/p/5277883.html) -
📖 JavaScript 显式类型转换与隐式类型转换 —— CSDN
(https://blog.csdn.net/yangjvn/article/details/48284163) -
📖 你不知道的 JavaScript(中卷)强制类型转换 —— 简书
(https://www.jianshu.com/p/777a89b4ed9a) -
📖 你懂 JavaScript 嗎?#8 強制轉型 —— cythilya
(https://ithelp.ithome.com.tw/articles/10201512) -
📖 动态类型语言和鸭子类型 —— 曾探
(http://book.51cto.com/art/201505/475153.htm) -
📖 Nominal & Structural Typing —— flow
(https://flow.org/en/docs/lang/nominal-structural/) -
📖 What exactly is Type Coercion in Javascript? —— stackoverflow
(https://stackoverflow.com/questions/19915688/what-exactly-is-type-coercion-in-javascript) -
📖 You Don't Know JS: Types & Grammar —— github
(https://github.com/getify/You-Dont-Know-JS/blob/master/types%20&%20grammar/ch4.md)
视频
-
📺 javascript 隐式转换 —— 慕课网
(https://www.imooc.com/video/5675) -
📺 Javascript 基础加强-类型转换 —— 黑马程序员
(http://www.le.com/ptv/vplay/27767009.html)
5. == vs ===, typeof vs instanceof
文章
-
📖 JavaScript 中的相等性判断 —— MDN
(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Equality_comparisons_and_sameness) -
📖 js 中 == 和 === 的区别 —— 掘金
(https://juejin.im/entry/584918612f301e005716add6) -
📖 == vs === in Javascript —— CSDN
(https://blog.csdn.net/w97531/article/details/82255225) -
📖 深入理解 javascript 之 typeof 和 instanceof —— CSDN
(https://blog.csdn.net/mevicky/article/details/50353881) -
📖 JavaScript 的 typeof 的用途 —— justjavac
(http://justjavac.com/javascript/2012/12/23/what-is-javascripts-typeof-operator-used-for.html) -
📖 一张图看懂 Function 和 Object 的关系及简述 instanceof 运算符 —— 掘金
(https://juejin.im/post/58358606570c35005e4142bd) -
📖 浅谈 instanceof 和 typeof 的实现原理 —— 掘金
(https://juejin.im/post/5b0b9b9051882515773ae714) -
📖 typeof 和 instanceOf 的区别
(https://segmentfault.com/a/1190000000730982)
6. this, call, apply 和 bind
文章
-
📖 Javascript 的 this 用法 —— 阮一峰
(http://www.ruanyifeng.com/blog/2010/04/using_this_keyword_in_javascript.html) -
📖 学会 JS 的 this 这一篇就够了,根本不用记 —— 慕课网
(https://www.imooc.com/article/1758) -
📖 [译] this(他喵的)到底是什么 — 理解 JavaScript 中的 this、call、apply 和 bind —— 掘金
(https://juejin.im/post/5b9f176b6fb9a05d3827d03f) -
📖 this、apply、call、bind —— 掘金
(https://juejin.im/post/59bfe84351882531b730bac2) -
📖 使用 call、apply 和 bind 解决 js 中烦人的 this,事件绑定时的 this 和传参问题 —— 博客园
(https://www.cnblogs.com/tingyu-blog/p/6212392.html) -
📖 call、apply 和 bind 的原生实现 —— github
(https://github.com/Abiel1024/blog/issues/16)
视频
-
📺 JavaScript 关于 this 关键字解释 —— 爱奇艺
(https://www.iqiyi.com/w_19rr1augsd.html) -
📺 JS 关于作用域闭包和 this 的综合面试题 —— 百度视频
(http://baidu.iqiyi.com/watch/845335533383874688.html?page=videoMultiNeed) -
📺 js 面向对象闭包数组 12.函数中的 this —— 乐视视频
(http://www.le.com/ptv/vplay/27478413.html?ch=baidu_s) -
📺 1.3.10-this 指向及 this 应用 —— 乐视视频
(http://www.le.com/ptv/vplay/24835911.html?ch=baidu_s) -
📺 珠峰培训 JavaScript 开发课程:关于 this 关键字、闭包作用域 —— 网易云课堂
(https://study.163.com/course/introduction/590005.htm)
7. 函数作用域, 块级作用域和词法作用域
文章
-
📖 变量作用域与解构赋值 —— 廖雪峰
(https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/0014344993159773a464f34e1724700a6d5dd9e235ceb7c000) -
📖 学习 Javascript 闭包(Closure) —— 阮一峰
(http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html) -
📖 JavaScript 中词法作用域、闭包与跳出闭包 —— SegmentFault
(https://segmentfault.com/a/1190000006671020) -
📖 JavaScript 深入之词法作用域和动态作用域 —— 掘金
(https://juejin.im/entry/58e70077b123db15eb88dc7e) -
📖 深入理解闭包之前置知识 → 作用域与词法作用域 —— 掘金
(https://juejin.im/post/5afb0ae56fb9a07aa2138425) -
📖 What is lexical scope? —— stackoverflow
(https://stackoverflow.com/questions/1047454/what-is-lexical-scope) -
📖 You Don't Know JS: Scope & Closures —— Kyle Simpson
(https://github.com/fishenal/You-Dont-Know-JS/blob/master/scope%20&%20closures/ch2.md)
8. 闭包
文章
-
📖 闭包 —— MDN
(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Closures) -
📖 ECMAScript 闭包(closure)—— w3school
(http://www.w3school.com.cn/js/pro_js_functions_closures.asp) -
📖 学习 Javascript 闭包(Closure) —— 阮一峰
(http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html) -
📖 闭包 —— 廖雪峰
(https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/00143449934543461c9d5dfeeb848f5b72bd012e1113d15000) -
📖 一次性搞懂 JavaScript 闭包 —— 简书
(https://www.jianshu.com/p/796e903754f1) -
📖 JavaScript 闭包 —— SegmentFault
(https://segmentfault.com/a/1190000006875662) -
📖 js 匿名自执行函数中闭包的高级使用 —— 掘金
(https://juejin.im/entry/5800eb7da22b9d005b36156e) -
📖 高效使用 JavaScript 闭包 —— 掘金
(https://juejin.im/entry/59df405251882551bf7e58c6) -
📖 深入理解 JavaScript 原型与闭包 —— 王福朋
(https://www.cnblogs.com/wangfupeng1988/p/3977924.html)
视频
-
📺 JavaScript 闭包和闭包面试题 —— 爱奇艺
(http://www.iqiyi.com/w_19rr1amael.html) -
📺 js 面向对象闭包数组 11.闭包 —— 乐视
(http://www.le.com/ptv/vplay/27478410.html) -
📺 白贺翔\_函数(闭包) —— 乐视
(http://www.le.com/ptv/vplay/30505852.html)
9. map, reduce, filter 等高阶函数
文章
-
📖 高阶函数 —— 廖雪峰
(https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/001434499355829ead974e550644e2ebd9fd8bb1b0dd721000) -
📖 ES5 中新增的 Array 方法详细说明 —— 张鑫旭
(https://www.zhangxinxu.com/wordpress/2013/04/es5%e6%96%b0%e5%a2%9e%e6%95%b0%e7%bb%84%e6%96%b9%e6%b3%95/) -
📖 一张图看懂 JavaScript 中数组的迭代方法:forEach、map、filter、reduce、every、some —— 掘金
(https://juejin.im/post/5835808067f3560065ed4ab2) -
📖 Transducing(上)-《JavaScript 轻量级函数式编程》 —— SegmentFault
(https://segmentfault.com/a/1190000012127329) -
📖 JavaScript 函数式编程(三) —— @BuptStEve
(https://github.com/BuptStEve/blog/issues/15)
10. 表达式和语句
文章
-
📖 js 表达式与语句 —— 博客园
(https://www.cnblogs.com/xianshenglu/p/8386918.html) -
📖 JS 表达式和语句的区别 —— SegmentFault
(https://segmentfault.com/q/1010000004102804) -
📖 JavaScript 中的表达式(expression)和语句/声明(statement) —— CSDN
(https://blog.csdn.net/mett_smith/article/details/78761247) -
📖 重讀 Axel 的 Javascript 中的 Expression vs Statement 一文 —— SegmentFault
(https://segmentfault.com/a/1190000004565693) -
📖 Expressions versus statements in JavaScript —— Dr. Axel
(http://2ality.com/2012/09/expressions-vs-statements.html)
11. 变量提升
文章
-
📖 JavaScript 变量提升 —— 菜鸟教程
(http://www.runoob.com/js/js-hoisting.html) -
📖 ES6 变量作用域与提升:变量的生命周期详解 —— 掘金
(https://juejin.im/post/59905bea6fb9a03c34192c51) -
📖 ``翻译 JavaScript Scoping and Hoisting —— SegmentFault
(https://segmentfault.com/a/1190000004345355#articleHeader5) -
📖 JavaScript Scoping and Hoisting —— Ben Cherry
(http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html)
12. Promise
文章
-
📖 使用 promises —— MDN
(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Using_promises) -
📖 Promise —— MDN
(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise) -
📖 Promise — 廖雪峰
(https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/0014345008539155e93fc16046d4bb7854943814c4f9dc2000) -
📖 JavaScript Promise:去而复返 —— 司徒正美
(https://www.cnblogs.com/rubylouvre/p/3495286.html) -
📖 (上面的原文)JavaScript Promise:简介 —— Web Fundamentals
(https://developers.google.com/web/fundamentals/primers/promises#_1) -
📖 1 分钟读完《10 分钟学会 JavaScript 的 Async/Await》 —— justjavac
(https://segmentfault.com/a/1190000011813934) -
📖 JavaScript Promise 迷你书(中文版)
(https://juejin.im/entry/56499ae160b2d1404c4f8834) -
📖 JavaScript 进阶之路——认识和使用 Promise,重构你的 Js 代码 —— 博客园
(https://www.cnblogs.com/yunfeifei/p/4453690.html)
视频
-
📺 Promise 入门 —— 慕课网
(https://www.imooc.com/learn/949)
13. 立即执行函数, 模块化, 命名空间
文章
-
📖 Javascript 模块化编程(一):模块的写法 —— 阮一峰
(http://www.ruanyifeng.com/blog/2012/10/javascript_module.html) -
📖 javascript 模块化编程-详解立即执行函数表达式 —— 简书
(https://www.jianshu.com/p/4dbf4a4c8ebb) -
📖 Javascript 的匿名函数与自执行 —— 掘金
(https://juejin.im/entry/57fee360a22b9d005b1d9ae3) -
📖 前端模块化——技术选型 —— SegmentFault
(https://segmentfault.com/a/1190000006966358) -
📖 谈谈 Js 前端模块化规范 —— SegmentFault
(https://segmentfault.com/a/1190000015991869#articleHeader8) -
📖 函数声明与函数表达式的区别 —— 伯乐在线
(http://web.jobbole.com/87534/)
14. 递归
文章
-
📖 求解释 js 递归 —— SegmentFault
(https://segmentfault.com/q/1010000003942347) -
📖 JavaScript 中的递归 —— 掘金
(https://juejin.im/post/5948c0d8fe88c2006a939e2a) -
📖 递归(上)-《JavaScript 轻量级函数式编程》 —— 掘金
(https://juejin.im/post/59c1d91d6fb9a00a53275f79) -
📖 递归(下)-《JavaScript 轻量级函数式编程》 —— 掘金
(https://juejin.im/post/59c87fb46fb9a00a437b1a2e) -
📖 尾调用和尾递归 —— 掘金
(https://juejin.im/post/5acdd7486fb9a028ca53547c) -
📖 几个经典递归问题用 js 实现 —— CSDN
(https://blog.csdn.net/qianqianstd/article/details/75807462) -
📖 递归函数的几个例子 —— CSDN
(https://blog.csdn.net/x_i_xw/article/details/72026868)
15. 算法
文章
-
📖 十大经典排序算法总结(JavaScript 描述) —— 掘金
(https://juejin.im/post/57dcd394a22b9d00610c5ec8) -
📖 在 JavaScript 中学习数据结构与算法 —— 掘金
(https://juejin.im/post/594dfe795188250d725a220a#comment) -
📖 JS 中可能用得到的全部的排序算法 —— 掘金
(https://juejin.im/post/58c9d5fb1b69e6006b686bce) -
📖 JS 家的排序算法 —— 简书
(https://www.jianshu.com/p/1b4068ccd505) -
📖 前端常见算法的 JS 实现 —— SegmentFault
(https://segmentfault.com/a/1190000008593715) -
📖 前端面试中的常见的算法问题 ——蒲小花的博客
(https://www.jackpu.com/qian-duan-mian-shi-zhong-de-chang-jian-de-suan-fa-wen-ti/)
视频
-
📺 Javascript 实现二叉树算法 —— 慕课网
(https://www.imooc.com/learn/888)
16. 数据结构
文章
-
📖 来我们浅谈一下 js 的数据结构 —— 简书
(https://www.jianshu.com/p/5e0e8d183102) -
📖 JavaScript 中的算法与数据结构 —— 简书
(https://www.jianshu.com/nb/16835496) -
📖 学 JS 必看-JavaScript 数据结构深度剖析 —— 大道至简的博客
(http://blog.sina.com.cn/s/blog_7b9c5e4101017mjt.html) -
📖 js 中基础数据结构数组去重问题 —— 掘金
(https://juejin.im/entry/586effe0da2f600053d85a9a)
视频
-
📺 JavaScript 数据结构-运算符 —— 乐视
(http://www.le.com/ptv/vplay/27606964.html)
17. 消息队列和事件循环
文章
-
📖 并发模型与事件循环 —— MDN
(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/EventLoop) -
📖 JavaScript 运行机制详解:再谈 Event Loop —— 阮一峰
(http://www.ruanyifeng.com/blog/2014/10/event-loop.html) -
📖 深入理解 JavaScript 事件循环 —— 博客园
(https://www.cnblogs.com/dong-xu/p/7000163.html) -
📖 深入浅出 Javascript 事件循环机制 —— 知乎
(https://zhuanlan.zhihu.com/p/26229293) -
📖 JS 事件循环机制(event loop)之宏任务、微任务 —— SegmentFault
(https://segmentfault.com/a/1190000014940904#articleHeader7) -
📖 JavaScript:彻底理解同步、异步和事件循环 —— SegmentFault
(https://segmentfault.com/a/1190000004322358) -
📖 从浏览器多进程到 JS 单线程,JS 运行机制最全面的一次梳理 —— 掘金
(https://juejin.im/post/5a6547d0f265da3e283a1df7)
18. setTimeout, setInterval 和 requestAnimationFrame
文章
-
📖 Window setTimeout() 方法 —— 菜鸟教程
(http://www.runoob.com/jsref/met-win-settimeout.html) -
📖 Window setInterval() 方法 —— 菜鸟教程
(http://www.runoob.com/jsref/met-win-setinterval.html) -
📖 关于 setTimeout —— 掘金
(https://juejin.im/post/5aa4c47af265da239866e236) -
📖 你不知道的 Javascript:有趣的 setTimeout —— 掘金
(https://juejin.im/post/5a77f8ce5188257a6d635d76) -
📖 原来你是这样的 setTimeout —— 掘金
(https://juejin.im/entry/5861ebf01b69e6006ce61d38) -
📖 setTimeout() 和 setInterval() 本质区别在哪里?—— SegmentFault
(https://segmentfault.com/q/1010000005989491) -
book: window.requestAnimationFrame —— MDN
(https://developer.mozilla.org/zh-CN/docs/Web/API/Window/requestAnimationFrame) -
📖 requestAnimationFrame 知多少?—— 博客园
(http://www.cnblogs.com/onepixel/p/7078617.html) -
📖 CSS3 动画那么强,requestAnimationFrame 还有毛线用?—— 张鑫旭
(https://www.zhangxinxu.com/wordpress/2013/09/css3-animation-requestanimationframe-tween-%e5%8a%a8%e7%94%bb%e7%ae%97%e6%b3%95/) -
📖 「JavaScript 定时器」setInterval、setTimeout 和 requestAnimationFrame 浅析 —— SegmentFault
(https://segmentfault.com/a/1190000014661035) -
📖 翻译:setInterval 与 requestAnimationFrame 的时间间隔测试 —— SegmentFault
(https://segmentfault.com/a/1190000000386368) -
📖 阿里前端面试题:requestAnimationFrame 实现类似 setInterval 的计时器 —— SegmentFault
(https://segmentfault.com/q/1010000013909430)
视频
-
📺 setTimeout 和 setInterval —— 优酷
(http://v.youku.com/v_show/id_XNTA4OTQ0NzA0.html)
19. 继承, 多态和代码复用
文章
-
📖 JS 面向对象编程之:封装、继承、多态 —— 博客园
(https://www.cnblogs.com/Leo_wl/p/5734794.html) -
📖 Javascript 的继承与多态 —— 简书
(https://www.jianshu.com/p/5cb692658704) -
📖 js:面向对象编程,带你认识封装、继承和多态 —— 掘金
(https://juejin.im/post/59396c96fe88c2006afc2707) -
📖 JavaScript 中的“多继承” —— 掘金
(https://zhuanlan.zhihu.com/p/34693209) -
📖 代码复用模式 —— github
(https://github.com/TooBug/javascript.patterns/blob/master/chapter6.markdown) -
📖 深入理解 JavaScript:代码复用模式(推荐篇) —— 汤姆大叔
(http://www.cnblogs.com/TomXu/archive/2012/04/24/2438050.html) -
📖 深入理解 JavaScript:代码复用模式(避免篇) —— 汤姆大叔
(https://www.cnblogs.com/TomXu/archive/2012/04/23/2438005.html)
20. 按位操作符, 类数组对象和类型化数组
文章
-
📖 按位操作符 —— MDN
(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators) -
📖 类数组对象 —— MDN
(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Typed_arrays) -
📖 类型化数组 —— MDN
(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) -
📖 JavaScript ArrayBuffer 浅析 —— 博客园
(https://www.cnblogs.com/gradolabs/p/4762134.html)
21. DOM 树和渲染过程
文章
-
📖 如何创建一个 DOM 树 —— MDN
(https://developer.mozilla.org/zh-CN/docs/Web/API/Document_Object_Model/How_to_create_a_DOM_tree) -
📖 HTML DOM 节点 —— W3school
(http://www.w3school.com.cn/htmldom/dom_nodes.asp) -
📖 DOM 概述 —— 阮一峰
(http://javascript.ruanyifeng.com/dom/node.html) -
📖 《JavaScript 闯关记》之 DOM(上)—— 掘金
(https://juejin.im/post/583cbbfa61ff4b006ccc41fe) -
📖 《JavaScript 闯关记》之 DOM(下)—— 掘金
(https://juejin.im/post/583cbc4961ff4b006ccc44fb) -
📖 掌握 DOM 操作 —— 掘金
(https://juejin.im/entry/58314efd8ac2470061bb30fd) -
📖 操作 DOM —— 廖雪峰
(https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/001434500494451273e6b3dec9d411d9ba841dee8caec45000) -
📖 原来 CSS 与 JS 是这样阻塞 DOM 解析和渲染的 —— 掘金
(https://juejin.im/post/59c60691518825396f4f71a1)
视频
-
📺 DOM 探索之基础详解篇 —— 慕课网
(https://www.imooc.com/learn/488) -
📺 DOM 事件探秘 —— 慕课网
(https://www.imooc.com/learn/138) -
📺 jQuery 基础(二)DOM 篇 —— 慕课网
(https://www.imooc.com/learn/530) -
📺 JS 操作 DOM 对象属性和方法 —— 爱奇艺
(http://www.iqiyi.com/w_19rr19s08l.html)
22. new 与构造函数, instanceof 与实例
文章
-
📖 构造函数与 new 命令 —— 阮一峰
(http://javascript.ruanyifeng.com/oop/basic.html) -
📖 Javascript 面向对象编程(二):构造函数的继承 —— 阮一峰
(http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance.html) -
📖 完整原型链详细图解(构造函数、原型、实例化对象) —— CSDN
(https://blog.csdn.net/SpicyBoiledFish/article/details/71123162) -
📖 JavaScript 中构造函数与 new 操作符的实例详解 —— PHP 中文网
(http://www.php.cn/js-tutorial-376246.html) -
📖 构造函数、实例、原型、原型链之间的关系 —— CSDN
(https://blog.csdn.net/yin_991/article/details/80954453) -
📖 深入理解 JS—instanceof 和原型链 —— CSDN
(https://blog.csdn.net/cecilia620/article/details/71158048) -
📖 前端基础进阶(九):详解面向对象、构造函数、原型与原型链 —— 简书
(https://www.jianshu.com/p/15ac7393bc1f) -
📖 js 用 new 实例化对象与直接调用的 this 的区别 —— 简书
(https://www.jianshu.com/p/60ffc4831bff) -
📖 JavaScript 并非所有的东西都是对象 —— justjavac
(http://justjavac.com/javascript/2012/12/22/javascript-values-not-everything-is-an-object.html) -
📖 JavaScript instanceof 运算符深入剖析 —— IBM
(https://www.ibm.com/developerworks/cn/web/1306_jiangjj_jsinstanceof/)
视频
-
📺 改良版的构造函数 —— 乐视
(http://www.le.com/ptv/vplay/27766889.html)
23. 原型继承与原型链
文章
-
📖 继承与原型链 —— MDN
(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Inheritance_and_the_prototype_chain) -
📖 构造函数、原型与原型链 —— github
(https://github.com/bigdots/blog/issues/1) -
📖 原型及原型链 —— github(1269 Star)
(https://github.com/stone0090/javascript-lessons/tree/master/2.5-Prototype) -
📖 理清 javascript 中的面向对象(一) 原型继承 —— SegmentFault
(https://segmentfault.com/a/1190000004282206) -
📖 JavaScript:继承和原型链(译) —— justjavac
(http://justjavac.com/2015/12/09/inheritance-and-the-prototype-chain.html) -
📖 三张图搞懂 JavaScript 的原型对象与原型链 —— 博客园
(http://www.cnblogs.com/shuiyi/p/5305435.html) -
📖 一张图让你搞懂 JavaScript 的继承与原型链 —— CSDN
(https://blog.csdn.net/the__apollo/article/details/76774698) -
📖 JS 高级--原型链(一看就懂,但 18 岁以下请绕道) —— CSDN
(https://blog.csdn.net/xiaotao_css/article/details/72782416) -
📖 原型继承 —— 廖雪峰
(https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/0014344997013405abfb7f0e1904a04ba6898a384b1e925000) -
📖 JS 原型链与继承别再被问倒了 —— 掘金
(https://juejin.im/post/58f94c9bb123db411953691b) -
📖 征服 JavaScript 面试系列:类继承和原型继承的区别 —— 掘金
(https://juejin.im/entry/5885db221b69e600592253e7) -
📖 JavaScript 深入之从原型到原型链 —— 冴羽
(https://github.com/mqyqingfeng/Blog/issues/2) -
📖 深入理解 JavaScript 原型与闭包 —— 王福朋
(https://www.cnblogs.com/wangfupeng1988/p/3977924.html)
视频
-
📺 JS 高级-07-原型链继承 —— 乐视
(http://www.le.com/ptv/vplay/27552753.html) -
📺 JS 原型对象和原型链简介 —— 腾讯视频
(https://v.qq.com/x/page/b0511nwa7d3.html)
24. Object.create 和 Object.assign
文章
-
📖 Object.create —— MDN
(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/create) -
📖 Object.assign —— MDN
(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) -
📖 Object.create vs Object.assign —— 慕课网手记
(https://www.imooc.com/article/17591) -
📖 JS 中的 Object.assign()、Object.create()、Object.defineProperty() —— CSDN
(https://blog.csdn.net/DeepLies/article/details/52915143) -
📖 es6 中 object.create()和 object.assign() —— 风信子博客
(http://www.onlyfordream.cn/2018/03/19/es6%E4%B8%ADobject-create%E5%92%8Cobject-assign/) -
📖 Object-Assign-Deep —— github
(https://github.com/saikojosh/Object-Assign-Deep)
25. 工厂函数和类
文章
-
📖 类 —— MDN
(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Classes) -
📖 类和实例 —— 廖雪峰
(https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/00138682004077376d2d7f8cc8a4e2c9982f92788588322000) -
📖 Javascript 定义类(class)的三种方法 —— 阮一峰
(http://www.ruanyifeng.com/blog/2012/07/three_ways_to_define_a_javascript_class.html) -
📖 【译】ES6 的工厂函数 —— 掘金
(https://juejin.im/post/59c8c8756fb9a00a681ae5bd) -
📖 JavaScript 创建对象之单例、工厂、构造函数模式 —— 掘金
(https://juejin.im/entry/587992c961ff4b0065edf1ff)
26. 设计模式
文章
-
📖 JavaScript 设计模式 —— 掘金
(https://juejin.im/post/59df4f74f265da430f311909) -
📖 学用 JavaScript 设计模式 —— 极客学院
(http://wiki.jikexueyuan.com/project/javascript-design-patterns/) -
📖 ``面试专题 JS 设计模式 —— SegmentFault
(https://segmentfault.com/a/1190000010914032) -
📖 JavaScript Patterns 中译本 —— github
(https://github.com/lxj/javascript.patterns)
视频
-
📺 HTML5 课程大纲 2-11JS 设计模式
(https://tv.sohu.com/v/dXMvMjQwNzYwNzQ4Lzg5NzM2MDA3LnNodG1s.html)
27. Memoization
文章
-
📖 JavaScript Memoization —— 司徒正美
(https://www.cnblogs.com/rubylouvre/archive/2009/08/06/1540678.html) -
📖 memoization 提升递归效率 —— 博客园
(https://www.cnblogs.com/yingshuizy/p/4517102.html) -
📖 如何提升 JavaScript 的递归效率 —— 51CTO
(http://developer.51cto.com/art/201010/231513.htm) -
📖 JavaScript 高级技巧 Memoization —— SegmentFaut
(https://segmentfault.com/a/1190000016703106)
28. 纯函数, 函数副作用和状态变化
文章
-
📖 纯函数(Pure Function) —— React.js 小书
(http://huziketang.mangojuice.top/books/react/lesson32) -
📖 JavaScript Functional Programming:纯函数 —— 宁皓网
(https://ninghao.net/blog/4634) -
📖 js 函数的副作用分析 —— 脚本之家
(https://www.jb51.net/article/28079.htm) -
📖 如何使用纯函数式 JavaScript 处理脏副作用 —— 掘金
(https://juejin.im/post/5b82bdb351882542e241ed32?utm_medium=hao.caibaojian.com&utm_source=hao.caibaojian.com) -
📖 原生 JavaScript 实现 state 状态管理系统 —— 博客园
(http://www.cnblogs.com/zhangycun/p/9403335.html) -
📖 JavaScript 函数式编程 —— @BuptStEve
(https://github.com/BuptStEve/blog/issues/10)
29. 耗性能操作和时间复杂度
文章
-
📖 时间复杂度 O(log n) 意味着什么?—— 掘金
(https://juejin.im/entry/593f56528d6d810058a355f4) -
📖 算法的时间复杂度和空间复杂度 —— 掘金
(https://juejin.im/entry/5a49f7d36fb9a0450a67b269) -
📖 算法(一)时间复杂度 —— 掘金
(https://juejin.im/post/58d15f1044d90400691834d4) -
📖 Big O Search Algorithms in JavaScript —— Bradley Braithwaite
(http://www.bradoncode.com/blog/2012/04/big-o-algorithm-examples-in-javascript.html) -
📖 Time Complexity Analysis in JavaScript — Jennifer Bland
(https://www.jenniferbland.com/time-complexity-analysis-in-javascript/)
30. JavaScript 引擎
文章
-
📖 javascript 引擎 —— 百度百科
(https://baike.baidu.com/item/javascript引擎/5356108) -
📖 V8(JavaScript 引擎) —— 百度百科
(https://baike.baidu.com/item/V8/6178125) -
📖 图解搞懂 JavaScript 引擎 Event Loop —— 掘金
(https://juejin.im/post/5a6309f76fb9a01cab2858b1)3 -
📖 V8 JavaScript 引擎:高性能的 ES2015+ —— justjavac
(https://segmentfault.com/a/1190000010819020) -
📖 10 分钟理解 JS 引擎的执行机制 —— SegmentFaut
(https://segmentfault.com/a/1190000012806637) -
📖 V8 javascript 引擎 —— 博客园
(https://www.cnblogs.com/weirdoQi/p/6609811.html)
31. 二进制, 十六进制, 十进制, 科学记数法
文章
-
📖 二、八、十、十六进制转换(图解篇) —— 博客园
(http://www.cnblogs.com/gaizai/p/4233780.html) -
📖 JavaScript 读写二进制数据 —— 掘金
(https://juejin.im/post/5b93dadaf265da0a857a58a3)
视频
-
📺 二进制、十进制、十六进制互相转化很难吗?—— 百度视频
(http://baishi.baidu.com/watch/7873060963471478456.html)
32. 偏函数, 柯里化, Compose 和 Pipe
文章
-
📖 Javascript 函数式编程之偏函数 —— CSDN
(https://blog.csdn.net/qq_42129063/article/details/81874314) -
📖 JavaScript 专题之偏函数 —— SegmentFault
(https://segmentfault.com/a/1190000010686144) -
📖 柯里化和偏函数有什么区别?—— SegmentFault
(https://segmentfault.com/q/1010000008626058) -
📖 Javascript 偏函数与柯里化 —— CSDN
(https://blog.csdn.net/neweastsun/article/details/75947785) -
📖 柯里化(curry) —— JS 函数式编程指南
(https://llh911001.gitbooks.io/mostly-adequate-guide-chinese/content/ch4.html) -
📖 代码组合(compose) —— JS 函数式编程指南
(https://llh911001.gitbooks.io/mostly-adequate-guide-chinese/content/ch5.html) -
📖 关于 javascript 函数式编程中 compose 的实现 —— SegmentFault
(https://segmentfault.com/a/1190000008394749) -
📖 实现 compose 的五种思路 —— SegmentFault
(https://segmentfault.com/a/1190000011447164) -
📖 JavaScript 函数式编程之函数组合函数 compose 和 pipe 的实现 —— SegmentFault
(https://segmentfault.com/a/1190000015102804) -
📖 JavaScript 轻量级函数式编程-第 4 章:组合函数 ——掘金
(https://juejin.im/post/59a62f3d6fb9a0248363fd9d#comment) -
📖 JavaScript 函数式编程(二) —— @BuptStEve
(https://github.com/BuptStEve/blog/issues/11)
33. 代码整洁之道
文章
-
📖 [译] JavaScript 代码整洁之道 —— 边城
(https://www.zcfy.cc/article/clean-code-javascript-readme-md-at-master-ryanmcdermott-clean-code-javascript-github-2273.html) -
📖 Javascript 编程风格 —— 阮一峰
(http://www.ruanyifeng.com/blog/2012/04/javascript_programming_style.html) -
📖 重构 - 代码整洁之道 —— 掘金
(https://juejin.im/post/5a5b2a5c6fb9a01cbc6e59f9) -
📖 让你的代码更简短,更整洁,更易读的 ES6 小技巧 —— 掘金
(https://juejin.im/post/5a7d71836fb9a063435ecf51) -
📖 Web 前端:11 个让你代码整洁的原则 —— 伯乐在线
(http://blog.jobbole.com/23617/) -
📖 Clean Code concepts adapted for JavaScript —— ryanmcdermott
(https://github.com/ryanmcdermott/clean-code-javascript)
写在最后
欢迎长按图片加好友
,我会第一时间和你分享前端行业趋势
,面试资源
,学习途径
等等。
添加好友备注【进阶学习】拉你进技术交流群
-
回复 面试题
,获取最新大厂面试资料。 -
回复 简历
,获取 3200 套 简历模板。 -
回复 React实战
,获取 React 最新实战教程。 -
回复 Vue实战
,获取 Vue 最新实战教程。 -
回复 ts
,获取 TypeScript 精讲课程。 -
回复 vite
,获取 精讲课程。 -
回复 uniapp
,获取 uniapp 精讲课程。 -
回复 js书籍
,获取 js 进阶 必看书籍。 -
回复 Node
,获取 Nodejs+koa2 实战教程。 -
回复 数据结构算法
,获取 数据结构算法 教程。 -
回复 架构师
,获取 架构师学习资源教程。 -
更多教程资源应有尽有,欢迎 关注获取