文章目录
第三章 语言基础
ECMA-262 第 5 版(ES5)定义的 ECMAScript,是目前为止实现得最为广泛(即受浏览器支持最好)的一个版本。第 6 版(ES6)在浏览器中的实现(即受支持)程度次之。到 2017 年底,大多数主流浏览器几乎或全部实现了这一版的规范。为此,本章接下来的内容主要基于 ECMAScript 第六版 ES6。
3.1 语法
3.1.1 区分大小写
ECMAScript中一切都区分大小写,包括 变量、函数名、操作符等。
3.1.2 标识符
标识符即为 变量、函数、属性或函数参数等 的名称。
ECMAScript 标识符使用驼峰大小写形式,即第一个单词的首字母小写,后面每个单词的首字母大写。
标识符要求以字母、数字、下划线_
、美元符号$
构成且必须以字母、下划线_
、美元符号$
开头。
关键字、保留字、true
、false
和 null
不能作为标识符。
3.1.3 注释
// 单行注释
/*
多行注释
*/
3.1.4 严格模式
ES5增加了严格模式(strict mode)的概念。
严格模式是一种不同的JavaScript解析和执行模型,ES3的一些不规范写法在严格模式下会被处理,对于不安全的活动抛出错误。
严格模式会影响JavaScript执行的很多方面,所有现代浏览器都支持严格模式。
- 对整个脚本启用严格模式,在脚本开头加一行预处理指令,任何支持的JavaScript引擎看到这行预处理指令都会切换到严格模式。
采取这种语法形式以避免破坏ES3的语法"use strict";
- 单独指定一个函数在严格模式下执行,把预处理指令加到函数体开头
function doSomething() { "use strict"; // 函数体 }
3.1.5 语句
ECMAScript 中的语句以分号结尾。省略分号意味着由解析器确定语句在哪里结尾。
let sum = a + b // 没有分号也有效,但不推荐
let diff = a - b; // 加分号有效,推荐
即使语句末尾的分号不是必需的,也应该加上。
多条语句可以合并到代码块中。代码块由一个左花括号({)标识开始,一个右花括号(})标识结束:
if (test) {
console.log(test);
}
3.2 关键字与保留字
关键字有特殊用途,不能用作标识符或属性名。
ES6规定的所有关键字如下:
break do in typeof
case else instanceof var
catch export new void
class extends return while
const finally super with
continue for switch yield
debugger function this
default if throw
delete import try
规范中描述了一组未来的保留字,同样不能用作标识符或属性名,虽然保留字在语言中没有特定用途,但保留给将来做关键字用。
ES6为将来保留的所有词汇:
始终保留:
enum
严格模式下保留:
implements package public
interface protected static
let private
模块代码中保留
await
3.3 变量声明
ECMAScript 变量是松散类型的,变量可以用于保存任何类型的数据。每个变量只不过是一个用于保存任意值的命名占位符。
有 3 个关键字可以声明变量:var
、const
和 let
。其中,var
在ECMAScript 的所有版本中都可以使用,而 const
和 let
只能在 ECMAScript 6 及更晚的版本中使用。