JavaScript核心原理解析

课程介绍
作为前端工程师必备技能,JavaScript 的重要性不言而喻。但是,很多人对 JavaScript 的印象都只是“简单易学”,对其掌握也仅仅停留在“会用就好”,以至于不求甚解、迷失于 JavaScript 。究其原因,他们从来都只是“写代码”,而没有去真正去了解、去探索“什么是语言”。

download:《JavaScript核心原理解析
JavaScript 作为一门语言,虽然易上手,但却有着诸多复杂微妙的机制,想要真正掌握绝非易事。而这些机制,正是 JavaScript 语言的精髓。只有当你深入理解语言内部的实现原理,才能做到无论出现什么新技术、新框架,都能轻松应对。

而这个专栏将以“语言”为核心,主要讨论语言设计、结构化和面向对象特性,以及部分的动态语言特性。通过本专栏,希望你能找到自己对语言的认识,构建一个语言知识结构。

专栏的每一讲都是一个独立话题,以一行代码为标题,整个话题会围绕该行代码展开。内容包括:代码的特殊性,代码所涉问题的领域,代码的逐步分解解析,与该代码相似的或同类的问题,潜在的应用,不为人知的历史,标准规范对此的态度,业界的一些看法与争议等等。

专栏正文共21期,分为4个模块。

“从零开始”主要讲述构成JavaScript语言的基础——JavaScript语言的静态结构,主要包括词法环境、块级作用域、语句、声明、字面量、变量环境、模块(名字空间)等等。

“从表达式到执行引擎”主要讲述JavaScript的执行过程,主要包括执行栈、执行队列、执行上下文、函数(函数对象/闭包)作为执行结构如何参与运算等等,还将讲述表达式(运算符+操作数)与优先级这个体系,说明表达式运算与语句运算间的不同。

“从原型到类”主要讲述JavaScript面向对象编程体系中最核心的一些设计,包括类继承、原型继承、属性表的使用、内部方法等等,并对索引数组和关联数组在JavaScript中的应用与整合做深度分析。

“从粗通到精通的进阶之路”主要讲述JavaScript作为动态语言的主要特性,包括动态的类型、动态的执行过程和动态的环境上下文等等。

课程目录

开篇词 (1讲)


开篇词 | 如何解决语言问题?

从零开始:JavaScript语言是如何构建起来的 (7讲)


01 | delete 0:JavaScript中到底有什么是可以销毁的

02 | var x = y = 100:声明语句与语法改变了JavaScript语言核心性质

03 | a.x = a = {n:2}:一道被无数人无数次地解释过的经典面试题

04 | export default function() {}:你无法导出一个匿名函数表达式

05 | for (let x of [1,2,3]) …:for循环并不比使用函数递归节省开销

加餐 | 捡豆吃豆的学问(上):这门课讲的是什么?

加餐 | 捡豆吃豆的学问(下):这门课该怎么学?

从表达式到执行引擎:JavaScript是如何运行的 (7讲)


06 | x: break x; 搞懂如何在循环外使用break,方知语句执行真解

07 | ${1}:详解JavaScript中特殊的可执行结构

08 | x => x:函数式语言的核心抽象:函数与表达式的同一性

09 | (…x):不是表达式、语句、函数,但它却能执行

10 | x = yield x:迭代过程的“函数式化”

11 | throw 1;:它在“最简单语法榜”上排名第三

加餐 | 让JavaScript运行起来

从原型到类:JavaScript是如何一步步走向应用编程语言的 (6讲)


12 | 1 in 1…constructor:这行代码的结果,既可能是true,也可能是false

13 | new X:从构造器到类,为你揭密对象构造的全程

14 | super.xxx():虽然直到ES10还是个半吊子实现,却也值得一讲

15 | return Object.create(new.target.prototype):做框架设计的基本功:写一个根类

16 | [a, b] = {a, b}:让你从一行代码看到对象的本质

17 | Object.setPrototypeOf(x, null):连Brendan Eich都认错,但null值还活着

从粗通到精通的进阶之路:唯一不变的是变化本身 (5讲)


18 | a + b:动态类型是灾难之源还是最好的特性?(上)

19 | a + b:动态类型是灾难之源还是最好的特性?(下)

20 | (0, eval)(“x = 100”) :一行让严格模式形同虚设的破坏性设计(上)

21 | (0, eval)(“x = 100”) :一行让严格模式形同虚设的破坏性设计(下)

22 | new Function(‘x = 100’)();:函数的类化是对动态与静态系统的再次统一

结束语 (1讲)


结束语 | 愿你能做一个真正“懂”的程序员

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值