注释
JavaScript支持两种格式的注释。在行尾“//”后的文本都会被JavaScript当作注释忽略掉的。此外,“/”和“/”之间的文本也会当作注释,这种注释可以跨行书写,但不能有嵌套的注释。
直接量
所谓直接量(literal),就是程序中可以直接使用的数据值。下面列出的都是直接量:
- 12 // 数字
- 1.1 // 小数
- "hello world" // 字符串文本
- 'hi' // 另一个字符串
- true // 布尔值
- false // 另一个布尔值
- /javascript/gi // 正则表达式(用做模式匹配)
- null // 空
标识符
标识符就是一个名字。JavaScript中,标识符用来对变量和函数进行命名,或者用做JavaScript代码中某些循环语句中的跳转位置的标记。JavaScript的标识符必须以字母、下划线(_)或美元符($)开始,后续的字符可以是字母、数字、下划线或美元符(数字是不允许作为首字符出现的,以便JavaScript可以轻易区分开标识符和数字)。
出于可移植性和易于书写的考虑,通常我们只使用ASCII字母和数字来书写标识符。
保留字
JavaScript把一些标识符拿出来用做自己的关键字。因此就不能再在程序中把这些关键字用作标识符了:
break | delete | function | return | typeof |
case | do | if | switch | var |
catch | else | in | this | void |
continue | false | instanceof | throw | while |
debugger | finally | new | true | with |
default | for | null | try |
JavaScript同样保留了一些关键字,这些关键字在当前的语言版本中并没有使用,但在未来版本中可能会用到。ECMAScript5保留了这些关键字:
class const enum export extends import super
此外,下面这些关键字在普通的JavaScript代码中是合法的,但是在严格模式下是保留字:
implements let private public yield interface package protected static
严格模式同样对下面的标识符的使用做了严格限制,他们并不完全是保留字,但不能用做变量、函数名或参数名:
arguments eval
ECMAScript3将Java的所有关键字都列为自己的保留字,尽管这些保留字在ECMAScript5中放宽了限制。
abstract | double | goto | native | static |
boolean | enum | implements | package | super |
byte | export | import | private | synchronized |
char | extends | int | protected | throws |
class | final | interface | public | transient |
const | float | long | short | volatile |
JavaScript预定义了很多全局变量和函数,应当避免把它们的名字用作变量名和函数名
arguments | encodeURI | Infinity | Number | RegExp |
Array | encodeURIComponent | isFinite | Object | String |
Boolean | Error | isNaN | parseInt | SyntaxError |
Date | eval | JSON | parseInt | TypeError |
decodeURI | EvalError | Math | RangeError | undefined |
decodeURiComponent | Function | NaN | RefernceError | URIError |
JavaScript的具体实现可能定义独有的全局变量和函数,每一种特定的JavaScript运行环境(客户端、服务端等)都有自己的一个全局属性列表,这一点是需要牢记的。
可选的分号
JavaScript使用分号(;)将语句分隔开,如果缺少分隔符,一条语句的结束就成了下一条语句的开始,反之亦然。在JavaScript中,如果语句各自独占一行,通常可以省略语句之间的分号。
JavaScript编程风格
第一种:使用分号来明确标记语句的结束,即使在并不完全需要分号的时候也是如此;
第二种:在任何可以省略分号的地方都将其省略,只有在不得不用的时候才使用分号。
注意
JavaScript只有在缺少了分号就无法正确解析代码的时候才会填补分号。但是存在例外:
- 在涉及return、break和continue语句的场景中,如果这三个关键字后紧跟换行,JavaScript则会在换行处填补分号。
- “++”和“--”运算符用作后缀表达式,它和表达式应当在同一行,否则行尾将填补分号,同时“++”或“--”将会作为下一行代码的前缀操作符并与之一起解析。