JavaScript 开发者应懂的 33 个概念
简介
这个项目是为了帮助开发者掌握 JavaScript 概念而创立的。它不是必备,但在未来学习(JavaScript)中,可以作为一篇指南。
本篇文章是参照 @leonardomso 创立,英文版项目地址在这里。 由于原版资源都要翻墙,所以本人创立一个中文版,附上关于这些概念在国内的一些文章和视频。 若有觉得更好的文章或者视频,可以贡献出来,觉得有误的,请联系我删除。
更新
若有觉得更好的文章或者视频,可以贡献出来,觉得有误的,请联系我删除。
- 文章的排序优化,前面的文章是介绍概念,后面的文章是深入解读。
- 将原文的 "高阶函数" 和 "map, reduce, filter" 合并为 "map, reduce, filter 等高阶函数"
- 增加 "promise" 概念(替换删除的 "高阶函数")
目录
- 调用堆栈
- 原始类型
- 值类型和引用类型
- 隐式, 显式, 名义和鸭子类型
- == 与 ===, 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. 调用堆栈
文章
视频
- 📺 What is the event loop anyway? —— 腾讯视频(英文字幕)
- 📺 Understanding The JavaScript Call Stack, Event Queue, Event Table, & Event Loop —— Bilibili
- 📺 JS 中的变量提升、堆栈内存及闭包详解 —— Acfun
- 📺 事件循环模型 —— PHP 中文网
2. 原始类型
文章
- 📖 原始数据 —— MDN
- 📖 ECMAScript 原始类型 —— W3school
- 📖 How numbers are encoded in JavaScript —— Dr. Axe
- 📖 每一个 JavaScript 开发者应该了解的浮点知识 —— 颜海镜
- 📖 JavaScript 标准参考教程(基本语法之数值) —— 阮一峰
- 📖 The Secret Life of JavaScript Primitives —— Angus Croll
视频
3. 值类型和引用类型
文章
- 📖 ECMAScript 引用类型 —— W3school
- 📖 js 中的值类型和引用类型的区别 —— 博客园
- 📖 JavaScript 的值传递和引用传递 —— FunDebug
- 📖 Primitive Types & Reference Types in JavaScript —— Bran van der Meer
- 📖 JavaScript: Passing by Value or by Reference —— CSDN
- 📖 js 值引用和值复制 —— SegmentFault
- 📖 js- 引用和复制(传值和传址) —— CSDN
4. 隐式, 显式, 名义和鸭子类型
文章
视频
5. == vs ===, typeof vs instanceof
文章
6. this, call, apply 和 bind
文章
视频
- 📺 JavaScript 关于 this 关键字解释 —— 爱奇艺
- 📺 JS 关于作用域闭包和 this 的综合面试题 —— 百度视频
- 📺 js 面向对象闭包数组 12.函数中的 this —— 乐视视频
- 📺 1.3.10-this 指向及 this 应用 —— 乐视视频
- 📺 珠峰培训 JavaScript 开发课程:关于 this 关键字、闭包作用域 —— 网易云课堂
7. 函数作用域, 块级作用域和词法作用域
文章
8. 闭包
文章
视频
9. map, reduce, filter 等高阶函数
文章
10. 表达式和语句
文章
- 📖 js 表达式与语句 —— 博客园
- 📖 JS 表达式和语句的区别 —— SegmentFault
- 📖 JavaScript 中的表达式(expression)和语句/声明(statement) —— CSDN
- 📖 重讀 Axel 的 Javascript 中的 Expression vs Statement 一文 —— SegmentFault
- 📖 Expressions versus statements in JavaScript —— Dr. Axel
11. 变量提升
文章
12. Promise
文章
视频
13. 立即执行函数, 模块化, 命名空间
文章
14. 递归
文章
15. 算法
文章
视频
16. 数据结构
文章
视频
17. 消息队列和事件循环
文章
- 📖 并发模型与事件循环 —— MDN
- 📖 JavaScript 运行机制详解:再谈 Event Loop —— 阮一峰
- 📖 深入理解 JavaScript 事件循环 —— 博客园
- 📖 深入浅出 Javascript 事件循环机制 —— 知乎
- 📖 JS 事件循环机制(event loop)之宏任务、微任务 —— SegmentFault
- 📖 JavaScript:彻底理解同步、异步和事件循环 —— SegmentFault
18. setTimeout, setInterval 和 requestAnimationFrame
文章
视频
19. 继承, 多态和代码复用
文章
20. 按位操作符, 类数组对象和类型化数组
文章
21. DOM 树和渲染过程
文章
视频
22. new 与构造函数, instanceof 与实例
文章
- 📖 构造函数与 new 命令 —— 阮一峰
- 📖 Javascript 面向对象编程(二):构造函数的继承 —— 阮一峰
- 📖 完整原型链详细图解(构造函数、原型、实例化对象) —— CSDN
- 📖 JavaScript 中构造函数与 new 操作符的实例详解 —— PHP 中文网
- 📖 构造函数、实例、原型、原型链之间的关系 —— CSDN
- 📖 深入理解 JS—instanceof 和原型链 —— CSDN
- 📖 前端基础进阶(九):详解面向对象、构造函数、原型与原型链 —— 简书
- 📖 js 用 new 实例化对象与直接调用的 this 的区别 —— 简书
- 📖 JavaScript 并非所有的东西都是对象 —— justjavac
- 📖 JavaScript instanceof 运算符深入剖析 —— IBM
视频
23. 原型继承与原型链
文章
视频
24. Object.create 和 Object.assign
文章
- 📖 Object.create —— MDN
- 📖 Object.assign —— MDN
- 📖 Object.create vs Object.assign —— 慕课网手记
- 📖 JS 中的 Object.assign()、Object.create()、Object.defineProperty() —— CSDN
- 📖 es6 中 object.create()和 object.assign() —— 风信子博客
- 📖 Object-Assign-Deep —— github
25. 工厂函数和类
文章
26. 设计模式
文章
视频
27. Memoization
文章
- 📖 JavaScript Memoization —— 司徒正美
- 📖 memoization 提升递归效率 —— 博客园
- 📖 如何提升 JavaScript 的递归效率 —— 51CTO
- 📖 JavaScript 高级技巧 Memoization —— SegmentFaut
28. 纯函数, 函数副作用和状态变化
文章
29. 耗性能操作和时间复杂度
文章
30. JavaScript 引擎
文章
31. 二进制, 十六进制, 十进制, 科学记数法
文章
视频
32. 偏函数, 柯里化, Compose 和 Pipe
文章.
33. 代码整洁之道
文章
转载自:https://juejin.cn/post/6844903695788802062