ECMAScript规范核心术语(持续更新)
规范的组织
第5条定义了全规范使用的各种约定
第6-9条定义ECMAScript程序运行的执行环境
第10-16条定义ECMAScript编程语言,包括语法编码及所有语言特性的执行语义。
第17-27条定义ECMAScript标准库,包括ECMAScript程序运行时可以使用的所有标准对象的定义。
第28条描述基于SharedArrayBuffer的内存一致性访问(存取)模型及原子(Atomic)对象方法。
规范术语
译法 | 原文 | 说明 |
---|---|---|
条款 | clause | 规范文本的划分,类似章节 |
机能 | facility | 规范指称的特性、能力或机制 |
实现近似的 | implementation-approximated | 由外部资源全部或部分定义的功能,但规范给出了建议的理想行为 |
实现定义的 | implementation-defined | 由本规范的外部资源全部或部分定义的功能 |
宿主定义的 | host-defined | 由本规范的外部资源全部或部分定义的功能 |
原始值 | primitive value | 第6条定义的Undefined、Null、Boolean、BigInt、Symbol或String值 语言实现直接在最低层表示的基准值(datum) |
基准值 | datum | |
普通对象 | ordinary object | 具有基本内部方法(essential internal method)定义的默认行为的对象 |
异质对象 | exotic object | 一个或多个基本内部方法不具有默认行为的对象 (一个对象要么是普通对象,要么是异质对象) |
基本内部方法 | essential internal method | 普通对象11个内部方法,函数对象2个内部方法 (在JavaScript中,可以通过Reflect API访问。——译者注) |
标准对象 | standard object | 语义由规范定义的对象 |
内置对象 | build-in object | 实现规定并提供的对象 规范定义的是标准内置对象。实现可以规定并提供其他内置对象。内置构造函数既是内置对象,也是构造函数。 |
数值 | Number value | 原始值,对应双精度64位二进制格式的IEEE754-2019值 |
数值类型 | Number type | 包括NaN、正无穷和负无穷,即所有可能的数值 |
属性 | property | 对象的组成部分,关联一个键(字符串或符号)和一个值 |
特性 | attribute | 用于定义属性性质的内部值 |
自有属性 | own property | 对象直接包含的属性 |
继承属性 | inherited property | 非自有属性,是对象原型(自有或继承)的属性 |
产生式 | production | |
产生式左端 | left-hand side | |
产生式右端 | right-hand side | |
链式产生式? | chain production | 产生式右端是一个非终结符和零或多个终结符 |
代换式 | alternative | |
目标符 | goal symbol | 以唯一非终结符开始的定义 |
终结符 | terminator (symbol) | |
非终结符 | nonterminator (symbol) | |
语法文法 | syntactic grammer | : |
词法及正则文法 | lexical and RegExp grammer | :: |
数值字符串文法 | number string grammer | ::: |
包含文法 | cover grammar | |
抽象操作 | abstract operation | |
语法导向操作 | syntax-directed operation | |
数学操作 | mathematical operation | 下标𝔽表示数值(默认数值类型) 下标ℝ表示数学值 |
值表示法 | value notation | 语言值以粗体表示,如null、true或"hello 规范内部值使用无衬线字体,如norma、return或throw |
规范类型 | specification type | |
列表 | List | 规范类型,« 1, 2 » |
记录 | Record | 规范类型 |
集合 | Set | 规范类型 |
关系 | Relation | 规范类型 |
完成记录 | Completion Record | 规范类型 |
引用 | Reference | 规范类型 |
基础值 | base value | 引用组件 |
引用名 | referenced name | 引用组件 |
严格引用标志 | strict reference tag | 引用组件 |
超类引用 | Super Reference | |
属性描述符 | Property Descriptor | 规范类型 |
环境记录 | Environment Record | 规范类型 |
抽象闭包 | Abstract Closure | 规范类型 |
数据块 | Data Block | |
公认符号 | well-known symbol | @@ |
内部栏位 | internal slot | [[]] |
内部方法 | internal method | [[]] |
记录字段 | Record field | [[]] |
正常完成 | normal completion (record) | [[Type]] 为normal |
硬性完成 | abrupt completion (record) | [[Type]] 为throw、return、continune或break |
环境记录 | environment record | |
声明环境记录 | declarative environment record | |
对象环境记录 | object environment record | |
全局环境记录 | global environment record | |
领域 | realm | |
执行上下文 | execution context | |
执行上下文栈 | execution context stack | |
运执上下文 | running execution context | |
代理 | agent | 即用户代理(User-Agent)的代理 |
agent cluster | ||
forward progress | ||
静态语义 | static semantic | |
前期错误 | early error |
新版 https://tc39.es/ecma262/#sec-mathematical-operations 里将 numeric value 一分为二。
因此有 numeric value、Numer、mathematical value 三个概念。
ES2020 添加了BigInt,将来会添加的 Built-in Decimal Data Type,各类数字相关概念的区分、澄清越来越迫切了。
numeric values,我暂且翻译为“数值”;
Numer,数字;
mathematical value,我暂且翻译为“数学数值”。
不知道我这样的翻译是否合理。
根据你的链接,Number和BigInt是ECMAScript中两种特定的数值类型,无需翻译。(而且将Number翻译成“数字”也不合适,数字一般表示x进制中的一位。)而这两种数值类型再加上mathematical value(数学值)都属于numeric value(数值):“This specification makes reference to these kinds of numeric values:”。
[...]下面附上论文的网页版和 PDF 版本:论文网页版论文 PDF 版很多人分不清 “上网” 是上的哪个网?即使在互联网的诞生地也是如此。Web的普及和深入人可见一斑。上网,其实指的是接入Internet,它是地球上相互连接的计算机构成的网络。计算机网络诞生于上个世纪的 60 年代,标志性通信协议是 TCP/IP 。(2)架构1989年诞生时,Web由三种技术构成: HTML 、 HTTP 、 URL [...]
C