2.1 字符集
es5要求支持Unicode3+
2.1.1 区分大小写,但客户端对象不区分,比如onclick和Onclick事件对象
2.1.2 空格、换行符和格式控制符
可识别:
空格 \u0020
水平制表符 \u0009
垂直制表符 \u000B
换页符 \u000C
不中断空白符 \u00A0
字节序标记 \uFEFF
以及在Unicode中所有Zs类别的字符(特指没有标识符号但不属于控制或格式字符的空格字符,比如语调符\u0301)
\' | 单引号 |
\" | 双引号 |
\& | 和号 |
\\ | 反斜杠 |
\n | 换行符 |
\r | 回车符 |
\t | 制表符 |
\b | 退格符 |
\f | 换页符 |
2.1.3 Unicode转义
使用6个ASCII字符来代表16位Unicode内码,使用\u跟随4个16进制数,比如语调符\u0301
2.1.4 标准化
Unicode允许使用多种方法对同一字符进行编码
2.2 注释
单行注释 //
多行注释 /**/
2.3 直接量
即程序中直接使用的值(字符串直接量,数字直接量,布尔直接量,正则直接量,null,undefined)
2.4 标识符和保留字
保留字:
break function return case if switch var continue else this void while new true default for null
delete typeof instanceof do catch try throw width debugger finally in
es5保留字:
class const enum export extends import super
严格模式:
implements let private public yield interface package protected static
特殊:
arguments(函数参数数组形式) eval(执行函数)
javascript的具体实现可能定义独有的全局变量和函数,每一种特定的js运行环境(客户端、服务端等)都有自己的全局属性列表
部分全局变量名和函数:
Infinity isFinite isNaN arguments parseFloat parseInt eval undefined
Number RegExp Array Object String Boolean Math NaN Date JSON Function
EvalError Error URIError SyntaxError TypeError RangeError ReferenceError
encodeURI encodeURIComponent decodeURI decodeURIComponent
2.5 分号可选(不过最好不要换行声明)