最近有个项目一直出现在GitHub的Trending页面,这个项目是为了帮助开发者掌握 JavaScript 概念而创立的。这些概念虽然不是硬性要求具备,但你可以把它作为未来可能用到的一部参考指南
目前该项目在 GitHub 上已经获得 18828 个Star,1520 个Fork(项目地址:https://github.com/leonardomso/33-js-concepts)
该项目已经被翻译成10种语言,分别为中文、葡萄牙语、韩语、西班牙语、土耳其语、波斯语等,无论你是来自于哪一个国家,相信都可以找到你想要的版本。其中中文版地址为:https://github.com/stephentian/33-js-concepts
下面我们一起来详细了解下这个项目,该项目涵盖了以下33个大类:
调用堆栈
原始类型
值类型和引用类型
隐式, 显式, 名义和鸭子类型
== 与 ===, typeof 与 instanceof
this, call, apply 和 bind
函数作用域, 块级作用域和词法作用域
闭包
map, reduce, filter 等高阶函数
表达式和语句
变量提升
Promise
立即执行函数, 模块化, 命名空间
递归
算法
数据结构
消息队列和事件循环
setTimeout, setInterval 和 requestAnimationFrame
继承, 多态和代码复用
按位操作符, 类数组对象和类型化数组
DOM 树和渲染过程
new 与构造函数, instanceof 与实例
原型继承与原型链
Object.create 和 Object.assign
工厂函数和类
设计模式
Memoization
纯函数, 函数副作用和状态变化
耗性能操作和时间复杂度
JavaScript 引擎
二进制, 十进制, 十六进制, 科学记数法
偏函数, 柯里化, Compose 和 Pipe
代码整洁之道
本一个大类里面都包含文章和视频两部分,这些文章和视频都是精选而出的,其中不乏有阮一峰、廖雪峰等IT专家的文章,相信一定可以帮助大家更好的学习和理解,如:
1、调用堆栈
文章
Understanding Javascript Call Stack —— Gaurav Pandvia
JavaScript 如何工作:对引擎、运行时、调用堆栈的概述
理解 JavaScript 中的执行上下文和执行栈
这一次,彻底弄懂 JavaScript 执行机制
解读 JavaScript 之引擎、运行时和堆栈调用
Tasks, microtasks, queues and schedules
视频
JS 中的变量提升、堆栈内存及闭包详解 —— Acfun
事件循环模型 —— PHP 中文网
Javascript: the Call Stack explained — Coding Blocks India
The JS Call Stack Explained In 9 Minutes — Colt Steele
JavaScript Execution Stack — Codecademy
What is the Call Stack? — Eric Traub
The Call Stack — Kevin Drumm
Understanding JavaScript Execution — Codesmith
Call Stack & Event Loop — movies com
2. 原始类型
文章
原始数据 —— MDN
ECMAScript 原始类型 —— W3school
How numbers are encoded in JavaScript —— Dr. Axe
每一个 JavaScript 开发者应该了解的浮点知识 —— 颜海镜
JavaScript 标准参考教程(基本语法之数值) —— 阮一峰
The Secret Life of JavaScript Primitives —— Angus Croll
视频
javascript 六种数据类型 —— 慕课网
javascript 视频教程(数据类型) —— PHP 中文网
JavaScript Reference vs Primitive Types — Academind
JavaScript Primitive Types — Simon Sez IT
Javascript Primitive and Reference Types — Baljeet Singh
Value Types and Reference Types in JavaScript — Programming with Mosh
JavaScript Primitive Data Types — Avelx
Everything you never wanted to know about JavaScript numbers — Bartek Szopka
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
视频
Javascript Pass by Value vs Pass by Reference — techsith
JavaScript Value vs Reference Types — Programming with Mosh
每个模块的分布,大体都如上所示,下面这个视频是关于JS原型对象和原型链简介,你们可以先体会一下:https://mp.weixin.qq.com/s/PQieSjJCLHIaQl3R666wjQ
以上的文章视频,都是来自翻译的中文版本,如果你想要英文版本,上面都给出了地址,可以自行到GitHub详情页。
开源最前线(ID:OpenSourceTop) 猿妹 整编
综合自:GitHub项目页