Warning:
This wiki has been archived and is now read-only.

ES5/源代码文本

From HTML5 Chinese Interest Group Wiki
< ES5(Redirected from ES5/source)
Jump to: navigation, search
ECMAScript 源代码文本使用 Unicode 3.0 或更高版本的字符编码的字符序列来表示。该文本预期已经正规化Unicode Technical Report #15 中描述的 Unicode 正规形式 C (标准等价重组)
Error creating thumbnail: Unable to save thumbnail to destination
。符合 ECMAScript 的实现不要求对文本执行正规化,也不要求将其表现为像执行了正规化一样。本规范的目的是假定 ECMAScript 源代码文本都是由16位代码单元组成的序列。像这样包含16位代码单元序列的源文本可能不是有效的的 UTF-16 字符编码。如果实际源代码文本没有用16位代码单元形式的编码,那就必须把它看作已经转换为 UTF-16 一样处理。
 SourceCharacter ::
   any Unicode code unit

贯穿本文档的短语“代码单元”和单词“字符”特指表示文本的单个16位单元的16位无符号值。短语“Unicode 字符”特指单个 Unicode 标量值(这可能大于16位,因此它可能代表多个代码单位)表示的语言或排版上的抽象单位。短语“代码点”是指这样一个 Unicode 标量值。“Unicode 字符”仅指由单一的 Unicode 标量值表示的实体:组合字符序列的每个组成部分都是单个“Unicode 字符”,尽管用户可能会认为整个序列是单个字符。

字符串字面量正则表达式字面量标识符中的任意字符(代码单元),可以是由六个字符组成的 Unicode 转义序列,即 \u 加上四个16进制数字。在注释中,这样的转义序列被当作注释的一部分忽略掉。在字符串字面量正则表达式字面量,Unicode 转义序列会给字面量值贡献一个字符。在标识符中,转义序列给标识符贡献一个字符。
Error creating thumbnail: Unable to save thumbnail to destination
Error creating thumbnail: Unable to save thumbnail to destination
Error creating thumbnail: Unable to save thumbnail to destination
注:虽然本文档有时会提到“字符串”里的“字符”和代表字符代码单元的16位无符号整数间的“变换”。事实上并没有变换,因为实际上就是用16位无符号值代表“字符串”里的“字符”。

ECMAScript 与 Java 编程语言对 Unicode 转义序列有不同的解释。在 Java 程序中,如果 Unicode 转义序列 \u000A 出现在单行注释中,它会被解释成行终止符 (Unicode 字符 000A 是换行),因此接下来的一个字符不是注释的一部分。与此类似,如果 Java 程序中的字符串字面量里出现 Unicode 转义序列 \u000A,它同样会被解释成行终止符,字符串字面量里不允许出现行终止符,不得不将作为字符串字面量字符值的换行符的 \u000A 替换成 \n。在 ECMAScript 程序中,始终不会解释注释里出现的 Unicode 转义序列,因此无法给注释贡献终止符。与此类似,如果 ECMAScript 程序中的字符串字面量里出现 Unicode 转义序列,它始终会贡献一个字符给字面量值,并且始终不会解释成有可能终止字符串字面量行终止符或引号标记。