1
0
Fork 0
Browse Source

vault backup: 2022-05-17 14:39:21

master
YuJian 3 years ago
parent
commit
e9dfba5c73
  1. 9
      深入探索 JavaScript/JavaScript 执行.md

9
深入探索 JavaScript/JavaScript 执行.md

@ -84,4 +84,11 @@ this 的值存放在私有属性 \[\[ThisBindingStatus\]\] 中 @@ -84,4 +84,11 @@ this 的值存放在私有属性 \[\[ThisBindingStatus\]\] 中
Completion Record 是语言实现者才需要关心的内容,但是我们可以从中看出一些 JavaScript 更加底层的实现逻辑,它有着三个字段分别是:
- \[\[type\]\] - 表示完成的类型,有 break continue return throw 和 normal 几种类型
- \[\[value\]\] - 表示语句的返回值,如果语句没有,则是 empty
- \[\[target\]\] - 表示语句的目标,通常是一个 JavaScript biao'qi'a
- \[\[target\]\] - 表示语句的目标,通常是一个 JavaScript 标签
JavaScript 正是依靠语句的 Completion Record 类型,方才可以在语句的复杂嵌套结构中,实现各种控制,普通语句执行后,会得到 \[\[type\]\] 为 normal 的 Completion Record,JavaScript 引擎遇到这样的 Completion Record,会继续执行下一条语句。
这些语句中,只有表达式语句会产生 \[\[value\]\],当然,从引擎控制的角度,这个 value 并没有什么用处,Chrome 控制台显示的正是语句的 Completion Record 的 \[\[value\]\]
参考文章:
- http://www.ecma-international.org/ecma-262/#sec-ecmascript-specification-types
Loading…
Cancel
Save