第一张 词法结构
1.1 字符集
(1) Javascript程序是用Unicode字符集编写的;javascript是严格区分大小写的语言。
(2) Javascript会忽略程序中的标识之间的空间和换行符,Unicode转移序列,使用6个ASCII字符来代表任意16位Unicode内码。这些转移序列均以\u为前缀,其后跟随4个十六进制数。
如:“cafe”==“caf\uooe9”
(3) Unicode标准化:为所有字符定义了一个首选的编码格式,并给出了一个标准的处理方式将文本转换为一种适合比较的标准格式,javascript会从认为它正在解析的程序代码已经是这种标准格式,不会在对其标识符,字符串或正则表达式做标准化处理。
1.2 注释
// 单行注释
/*和*/之间为文本注释
1.3 直接量
所谓直接变量就是程序中直接使用的数据值;
1.4 标识符和保留字
(1) 标识符就是一个名字。Javascript中,标识符用来对变量和函数进行命名,或者用做javascript代码中某些循环语句的跳转位置标记。
(2) Javascript中标识符规范:必须以字母,下划线或者美元符开始,后面的字符可以是字母,数字,下划线或美元符。
(3) 注意:javascript允许标识符中出现Unicode字符全集中的字母和数字,因此程序员可以使用非英语语言或数学符号来书写标识符。
(4) Javascript把一些标识符拿出来用做自己的关键字,因此,就不能再在程序中把这些关键字用作标识符了。
(5) Javascript的具体实现可能定义独有的全局变量和函数,每一种特定的javascript运行环境都有自己的一个全局属性列表。
1.5 可选的分号
(1) 在javascript中,如果语句各自独立占一行,通常可以省略语句之间的分号(程序结尾或右花括号的分号),之前的的分号也可以省略
(2) 注意:javascript并不是在所有换行处都填补分号,只有在缺少了部分分号就无法正确解析代码的时候才会填补分号。
(3) 例外1:在涉及return,break和continue语句的场景中,如果这三个关键字后紧跟换行,javascript则会在换行处填补分号。例如:
Return
True;
Javascript会解析成return;true;
而代码的本意是:
Return true;
所以,在这三个关键字和随后的表达式之间不能有换行。如果添加了换行,程序则只有再及特殊的情况下才会报错,而且程序的调试非常不方便。
例外2:在涉及“++”和“--”的时候,这些可以作为表达式的前段,也可以作为表达式的后端,如果作为后缀表达式,他和表达式应当在同一行,否则,行尾填补分号,同时,这两个符号将会作为下一行代码的前缀操作符并与之一起解析。