一、语法
ECMAScript 的语法很大程度上借鉴了 C 语言和其他类 C 语言,如 Java 和 Perl。
1. 区分大小写
ECMAScript 中一切都区分大小写。
无论是变量、函数名还是操作符,都区分大小写。
换句话说,变量 test 和变量 Test 是两个不同的变量。
类似地,typeof 不能作为函数名,因为它是一个关键字,但 Typeof 是一个完全有效的函数名。
2. 标识符
所谓 标识符 ,就是变量、函数、属性或函数参数的名称。
标识符可以由一或多个下列字符组成:
- 第一个字符必须是一个字母、下划线或美元符号
- 剩下的其他字符可以是字母、下划线、美元符号或数字。
按照惯例,ECMAScript 标识符使用驼峰大小写形式,即第一个单词的首字母小写,后面每个单词的首字母大写。
如:fistSecond、doSomethingImportant
注意:关键字、保留字、 true、false 和 null 不能作为标识符。
3. 注释
// 单行注释
/* 块注释,这是
多行注释 */
4. 严格模式
对整个脚本启用严格模式,在脚本开头加上这一行:"use strict";
单独指定一个函数在严格模式下执行:
function doSomething() {
"use strict";
// 函数体
}
它是一个预处理指令,任何支持的 JavaScript 引擎看到它都会切换到严格模式。
所有现代浏览器都支持严格模式。
5. 语句
ECMAScript 中的语句以分号结尾。
省略分号意味着由解析器确定语句在哪里结尾。
即使语句末尾的分号不是必需的,也应该加上。
加分号的好处:
- 有助于防止省略造成的问题。比如可以避免输入内容不完整。
- 便于开发者通过删除空行来压缩代码。如果没有结尾分号,只删除空行,会导致语法错误。
- 有助于在某些情况下提升性能,因为解析器会尝试在合适的位置补上分号以纠正语法错误。
多条语句可以合并到一个花括号代码块内。
if (test) {
test = false;
console.log(test);
}
if 之类的控制语句只在执行多条语句时要求必须有代码块。
不过,最佳实践是始终在控制语句中使用代码块,即使要执行的只有一条语句,如下例:
// 有效,但容易导致错误,应该避免
if (test)
console.log(test)
// 推荐
if (test) {
console.log(test)
}
二、关键字与保留字
ECMA-262 描述了一组保留的 关键字,它们不能用作标识符或属性名。
ECMA-262第6版规定的所有关键字如下:
break、case、catch、class、const、continue、debugger、default、delete、do、else、export、extends、finally、for、function、if、import、in、instanceof、new、return、super、switch、this、throw、try、typeof、var、void、while、with、yield
规范中也描述了一组 未来的保留字 ,同样不能用作标识符或属性名。
始终保留:enum
严格模式下保留:implements、interface、let、package、protected、private、public、static
模块代码中保留:await