JavaScript 语法
任何语言的核心都必然会描述这门语言最基本的工作原理,而描述的内容通常都要涉及这门语言的语法、操作符、数据类型、内置功能等用于构建复杂解决方案的基本概念。如前所述,ECMA-262 通过叫做 ECMAScript 的“伪语言”为我们描述了 JavaScript 的所有这些基本概念。
扩展:Ecma 是有一个国际标准化组织,ECMA-262 是一个标准,这个标准定义了一种脚本语言规范叫 ECMAScript。
JavaScript 语法的基本规则
自动插入分号规则(automatic semicolon insertion)
行尾使用分号的风格来自于 Java ,也来自于 C 语言和 C++,这一设计最初是为了降低编译器的工作负担。
一些 JavaScript 语句必须用分号结束,所以会被自动插入分号(ASI)影响:
- 空语句(就是单独的一个
;
) - let、const、变量声明(var foo = 'bar')
- import、export、模块定义
- 表达式语句(1 + 1; 也可以是函数表达式)
- do-while
- continue、break、throw
- debugger
- return
// 空语句分号
if (true) {
return 1;
} // <-- 这个分号不是 IF 语句语法的一部分,其实就是一个空语句。
三条规则:
- 要有换行符,且下一个符号是不符合语法的,就尝试插入分号,或者不符合语法规则的 token 是
}
,那么就尝试插入分号。 - 有换行符,且语法中规定此处不能有换行符,那么就自动插入分号。
- 源代码结束处,不能形成完整的脚本或者模块结构,那么就自动插入分号。