TA的每日心情 | 开心 2024-9-19 21:14 |
---|
签到天数: 757 天 [LV.10]以坛为家III
管理员
- 积分
- 1312431
|
javaScript核心原理解析 极客时间
极客时间出品的《JavaScript核心原理解析》由周爱民所作,周爱民是《JavaScript语言精髓与编程实践》作者,南潮科技(Ruff)首席架构师。本专栏讲重构你对JavaScript语言的认知。
《JavaScript核心原理解析》课程简介
在Web世界中,能跨平台、跨浏览器驱动网页,与用户交互的只有JavaScript,它的流行无需多言。但同时,JavaScript也是一门饱受争议的语言。在学习JavaScript的过程中,你很可能听说过这样的论断:
JavaScript的流行是一群精神病人的狂欢!
JavaScript是不成熟的语言!
JavaScript有N多设计缺陷!
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’)();
函数的类化是对动态与静态系统的再次统一
|
|