JavaScript核心原理解析
周爱民
《JavaScript语言精髓与编程实践》作者,南潮科技(Ruff)首席架构师
立即订阅
3594 人已学习
课程目录
已更新 20 讲 / 共 21 讲
0/3登录后,你可以任选3讲全文学习。
开篇词 (1讲)
开篇词 | 如何解决语言问题?
免费
从零开始:JavaScript语言是如何构建起来的 (5讲)
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是如何运行的 (6讲)
06 | x: break x; 搞懂如何在循环外使用break,方知语句执行真解
07 | `${1}`:详解JavaScript中特殊的可执行结构
08 | x => x:函数式语言的核心抽象:函数与表达式的同一性
09 | (...x):不是表达式、语句、函数,但它却能执行
10 | x = yield x:迭代过程的“函数式化”
11 | throw 1;:它在“最简单语法榜”上排名第三
从原型到类:JavaScript是如何一步步走向应用编程语言的 (5讲)
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}:让你从一行代码看到对象的本质
不定期加餐 (3讲)
加餐 | 捡豆吃豆的学问(上):这门课讲的是什么?
免费
加餐 | 捡豆吃豆的学问(下):这门课该怎么学?
免费
加餐 | 让JavaScript运行起来
免费
JavaScript核心原理解析
登录|注册

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

周爱民 2019-12-06
你好,我是周爱民,欢迎回到我的专栏。
今天我将为你介绍的是在 ECMAScript 规范中,实现起来“最简单”的 JavaScript 语法榜前三名的 JavaScript 语句。
标题中的throw 1就排在这个“最简单榜”第三名。
NOTE: 预定的加餐将是下一讲的内容,敬请期待。^^.

为什么讲最简单语法榜

为什么要介绍这个所谓的“最简单的 JavaScript 语法榜”呢?
在我看来,在 ECMAScript 规范中,对 JavaScript 语法的实现,尤其是语句、表达式,以及基础特性最核心的部分等等,都可以在对这前三名的实现过程和渐次演进关系中展示出来。甚至基本上可以说,你只要理解了最简单榜的前三名,也就理解了设计一门计算机语言的基础模型与逻辑
throw语句在 ECMAScript 规范描述中,它的执行实现逻辑只有三行:
ThrowStatement: throwExpression;
1.Let exprRef be the result of evaluating Expression.
2.Let exprValue be ? GetValue(exprRef).
3.Return ThrowCompletion(exprValue).
将这三行代码倒过来看,最后一行的 ThrowCompletion() 调用其实是一个简写,完整的表示法是:
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《JavaScript核心原理解析》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(2)

  • 行问
    之前阅读本专栏时,也确实遇到没有能够阅读理解,很懵。则去翻看老师的书籍,本专栏结合书的知识点来阅读,会有大大的提高。比如,“值类型”与“引用类型”,在专栏中,我一开始也比较懵的,看书之后再来理解,则是比较清晰。
    2019-12-06
    4
  • 许童童
    老师讲得挺好的,这个专栏主要是解决这样一个问题:JavaScript 是怎样的一门语言,以及它为什么是这样的一种语言。
    2019-12-06
    1
收起评论
2
返回
顶部