JavaScript核心原理解析-周爱民-极客时间-返现24元

极客时间专栏 2019-01-10 1:59:15 阅读(2476) 评论(0)

极客时间出品的《JavaScript核心原理解析》由周爱民所作,周爱民是《JavaScript语言精髓与编程实践》作者,南潮科技(Ruff)首席架构师。本专栏讲重构你对JavaScript语言的认知。

JavaScript核心原理解析-周爱民-极客时间-返现24元

订阅须知

本专栏为订阅专栏,更新时间为2019年11月11日至2019年12月27日。订阅成功后,即可通过“极客时间”App端、小程序端、Web端永久阅读。本专栏更新时间为每周一、三、五,形式为图文+音频,共计21期,定价68元。

《JavaScript核心原理解析》课程简介

在Web世界中,能跨平台、跨浏览器驱动网页,与用户交互的只有JavaScript,它的流行无需多言。但同时,JavaScript也是一门饱受争议的语言。在学习JavaScript的过程中,你很可能听说过这样的论断:

JavaScript的流行是一群精神病人的狂欢!

JavaScript是不成熟的语言!

JavaScript有N多设计缺陷!

JavaScript的继承是最糟糕的特性!

面试官:你觉得JavaScript是一门语言?

这些论断无一正确,却实在是抓人眼球。无数人迷失于JavaScript,很可能是因为他们从来都只是被要求“写代码”,却从未去真正了解过“什么是语言”。

而这个专栏将以“语言”为核心,主要讨论语言设计、结构化和面向对象特性,以及部分的动态语言特性。通过语言知识结构的梳理,让你看到曾经摸过的那些项目、写过的那些代码、填过的那些巨坑的影子,最终发掘出暗影背后涌动的语言原力,帮助你找到属于你自己的、可规划的语言学习体系。

《JavaScript核心原理解析》作者简介

JavaScript核心原理解析 周爱民

周爱民,前端“绿皮书”《JavaScript语言精髓与编程实践》作者,专注于软件开发与架构、项目管理二十余年,曾任盛大网络平台架构师、支付宝业务架构师、豌豆荚首席架构师等职。著有《Delphi源代码分析》《大道至简:软件工程实践者的思想》《大道至易:实践者的思想》《程序原本》《我的架构思想:基本模型、理论与原则》等书。

你将获得

深度解读 JavaScript 核心技术

JavaScript 语言特性以及原理剖析

帮你构建语言知识结构体系

JavaScript 的精进指南

《JavaScript核心原理解析》课程设计

1.专栏内容适合谁?

专栏面向JavaScript语言的实际应用者与深度爱好者,以讲述JavaScript语言特性、原理以及核心实现技术为主。周爱民将综合代码的特殊性、代码所涉问题的领域、与该代码相似的或同类的问题,将代码逐步分解、解析,一方面发掘它们潜在的应用,另一方面帮助你构建一个语言知识结构。

阅读基础要求:至少有一门编程语言经验,接触并使用过JavaScript。

不适合人群:无编程经验的初学者。

2.专栏会讲哪些知识?

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

3.专栏模块是如何设置的?

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

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

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

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

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

JavaScript核心原理解析》课程目录

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

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

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

var x = y = 100
声明语句与语法改了 JavaScript语言核心性质但也背上了黑锅

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

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

for (let x of [1,2,3]) …
这个let将导致循环语句的开销远超预期,代价比递归还要高

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

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

‘${1}’
特殊的可执行结构:语句与表达式之外的第三类存在

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

(…x)
不是表达式、语句、函数,但却能执行的它,到底是什么

x = yield x
迭代过程的“函数式化”:仅有递归不够,还要让函数能多次传入传出

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

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

1 in 1..constructor
这行代码的结果值,既可能是true,也可能是false

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

super.xxx()
直到ECMAScript10还是个半吊子实现的’super.xxx’也值得一讲

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

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

Object.setPrototypeOf(x, null)
去芜存菁:连Brendan Eich都认错,但null值还活着

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

a + b
动态类型:灾难之源vs最好的特性

eval(‘{abc:1}’)
JavaScript如何做到让代码可以随时随地执行

(0, evalK’x = 100′);
破坏性设计:一行代码让严格模式形同虚设

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

猿人学banner宣传图

我的公众号:猿人学 Python 上会分享更多心得体会,敬请关注。

***版权申明:若没有特殊说明,文章皆是猿人学 yuanrenxue.con 原创,没有猿人学授权,请勿以任何形式转载。***

说点什么吧...