1.4.1 认识JavaScript词法符号
词法符号是程序设计语言的基本规则,是学习编程应该掌握的基本知识。
1.字符集
JavaScript程序是使用Unicode字符集编写的。Unicode是一种字符集标准,用于对不同语言、文字与符号进行编号和字符定义。通过给每个字符分配编号,程序员可以创建字符编码,让计算机在同一个文件或程序中存储、处理和传输由不同语言、文字或符号组合而成的数据。常见的Unicode有以字节为单位进行编码的UTF-8、以16位无符号整数为单位进行编码的UTF-16和以32位无符号整数为单位进行编码的UTF-32。因为Unicode兼容ASCII(American Standard Code for Information Interchange,美国信息交换标准代码),所以JavaScript可以在程序中使用本地的字符、特殊的科学符号和ASCII等。
2.大小写敏感性
JavaScript是区分大小写的语言。也就是说,关键字、变量名、函数名等都必须注意大小写。
3.空格、制表符和换行符
JavaScript会忽略程序中标识符之间的空格、制表符和换行符,除非它们是字符串或正则表达式字面量的一部分。
4.可选的分号
在JavaScript中,分号代表一个语句的结束。因此,可以在一行代码中输入多个JavaScript语句。如果每个语句分别放置在不同的行中,可以省略分号,但这并不是一种好的编程习惯,应该习惯使用分号。
5.注释与文本换行符
注释用于解释代码的功能或不让某些代码执行(当调试程序时)。JavaScript中的注释有单行注释和多行注释两种。
单行注释只能注释一行代码,以“//”开始,到一行结束为止。多行注释可以注释一行或一段代码,以“/*”开始,以“*/”结束。
在ECMAScript 3中,字符串字面量必须写在一行中。在ECMAScript 5中,字符串字面量可以写在多行中,每行(除最后一行外)必须以反斜线“\”结束,反斜线和行结束符都不是字符串字面量。如果希望在显示结果中的字符串字面量后另起一行,可以使用转义字符“\n”。在ECMAScript 2015中,实现输出多行文本的方法是利用重音号“``”将字符串字面量括起来,在需要换行的地方直接按Enter键,此处的换行将同步出现在输出结果中。
6.标识符
标识符是用户在程序设计中给特定内容起的名字。在JavaScript程序设计中,需要由用户定义的标识符有变量名、对象名、符号常量、函数名等。
JavaScript标识符的构成规则是第一个字符必须是英文字母、下划线“_”或符号“$”,接下来的字符可以是英文字母、数字、下划线“_”或符号“$”。JavaScript标识符不能使用JavaScript保留字。例如,a、ab、size、Max、xl、y25及fun_1等都是合法的标识符;而3xy、“work”、lable:、Hi-4、list length和break等都是非法的标识符。
为了便于记忆和阅读,最好使用相应的英文或汉语拼音作为标识符。下划线常用于连接两个英文单词或汉语拼音。在ECMAScript规范中,标识符采用驼峰命名法。根据首字母是否大写,它又分为大驼峰式(PascalCase)和小驼峰式(camelCase)两种命名法。
7.关键字和保留字
关键字和保留字是JavaScript中预定义的、由英语小写字母组成的特定单词。每个关键字和保留字都被JavaScript赋予了一定的含义,具有相应的功能。在编程时不能将关键字和保留字用作标识符。ECMA-262第6版规定的所有关键字如表1-5所示。
表1-5 ECMA-262第6版规定的所有关键字
ECMA-262第6版中还有一些未来保留字,这些保留字虽然现在没有用到JavaScript中,但是仍保留了它们,以备将来扩展语言时使用,如表1-6所示。
表1-6 ECMA-262第6版的未来保留字
此外,每个特定JavaScript嵌入的客户端或服务器端都有自己的全局属性,它们的名字也不能作为标识符。ECMAScript标准定义的全局变量名和全局函数名如表1-7所示。
表1-7 ECMAScript标准定义的全局变量名和全局函数名