500007057_wx.jpg

最近有个项目一直出现在GitHub的Trending页面,这个项目是为了帮助开发者掌握 JavaScript 概念而创立的。这些概念虽然不是硬性要求具备,但你可以把它作为未来可能用到的一部参考指南


微信图片_20181121111325.jpg


目前该项目在 GitHub 上已经获得 18828 个Star,1520 个Fork(项目地址:https://github.com/leonardomso/33-js-concepts


该项目已经被翻译成10种语言,分别为中文、葡萄牙语、韩语、西班牙语、土耳其语、波斯语等,无论你是来自于哪一个国家,相信都可以找到你想要的版本。其中中文版地址为:https://github.com/stephentian/33-js-concepts


下面我们一起来详细了解下这个项目,该项目涵盖了以下33个大类:


  1. 调用堆栈

  2. 原始类型

  3. 值类型和引用类型

  4. 隐式, 显式, 名义和鸭子类型

  5. == 与 ===, typeof 与 instanceof

  6. this, call, apply 和 bind

  7. 函数作用域, 块级作用域和词法作用域

  8. 闭包

  9. map, reduce, filter 等高阶函数

  10. 表达式和语句

  11. 变量提升

  12. Promise

  13. 立即执行函数, 模块化, 命名空间

  14. 递归

  15. 算法

  16. 数据结构

  17. 消息队列和事件循环

  18. setTimeout, setInterval 和 requestAnimationFrame

  19. 继承, 多态和代码复用

  20. 按位操作符, 类数组对象和类型化数组

  21. DOM 树和渲染过程

  22. new 与构造函数, instanceof 与实例

  23. 原型继承与原型链

  24. Object.create 和 Object.assign

  25. 工厂函数和类

  26. 设计模式

  27. Memoization

  28. 纯函数, 函数副作用和状态变化

  29. 耗性能操作和时间复杂度

  30. JavaScript 引擎

  31. 二进制, 十进制, 十六进制, 科学记数法

  32. 偏函数, 柯里化, Compose 和 Pipe

  33. 代码整洁之道


本一个大类里面都包含文章和视频两部分,这些文章和视频都是精选而出的,其中不乏有阮一峰、廖雪峰等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项目页