ECMAScript 语法、关键字与保留字

144 阅读3分钟

一、语法

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