ECMAScript语法
ECMAScript语法借鉴了大量的C类语言的语法。所有在学习了C类语言之后再学习ECMAScript语法时,会更加的得心应手。
区分大小写
ECMAScript的一切都是区分大小写的(变量、函数名和操作符)。就好比如说一个变量A,它就不更同于变量a,因为他们的的大小写不一样,所以他们是不同的的变量。还有注意的是,在ECMAScript中,不能把关键字作为变量名、函数名。
// var 是一个关键字
let var = 1;
console.log(var); // Unexpected token 'var'
let Var = 1;
console.log(Var);
var是关键字是不可以作为变量名的,但是把var变为Var就可以使用了,因为Var不是关键字了。
标识符
标识符与就是所说的变量名、函数名、属性名等。ECMAScript有着一套标识符的规范。
- 第一个字符必须是一个字母、下划线(_)或一个美元符号($);
- 其他字符可以是字母、下划线、美元符号或数字。
- 还可以是一些特殊的字符,但是不推荐使用。
- 一般ECMAScript标识符采用的是驼峰格式拽写。两种形式:
- 小驼峰:javaScript。第一个单词的首写字母小写,后面接着的单词首写字母都是大写。
- 大驼峰:JavaScript。第一个单词的首写字母大写,后面接着的单词首写字母也都是大写。
格式是没有强制要求的,只是这样写显得更加的规范。
注释
ECMAScript的注释采用的是C类语言风格的注释。分为单行注释,块级注释。
单行注释
// 两根斜杠就是表示了单行注释
块级注释
/* 两根斜杠,中间还有两个星号,代表了块级注释 */
/*
* 这个星号不是必须的,只是为了更好的阅读
*/
块级注释也称多行注释。
严格模式
严格模式是在ECMAScript 5之后引入的。给 JavaScript添加了不同的处理方式和模型。在严格模式下,有一些的不确定的代码行为也将会得到处理。对于某些不安全的操作会抛出错误。严格模式下显得代码更加的严谨。
想要启动严格模式,只需要添加上这句代码就可以了。这是一个编译指令。
"`use strict`";
在那里添加呢?就要看你的需求了。
在整个脚本文件中启用严格模式,就在顶部添加即可
<script>
"`use strict`";
...
...
</script>
也可以在函数内部使用。
function name(){
"`use strict`";
...
...
}
语句
ECMAScript的语句是以分号结尾。换行也相当于是语句结尾了。
let num = 1;
let ber = 2;
// 都是可以执行的正确的代码
let a = 1
let b = 2
分号不是必须的,可以省略掉分号,由解析器来决定结尾。但是一般不推荐省略掉分号,因为加上分号可以避免许多的不必要的错误。也可以更好的将代码压缩。
在某些的情况下的,添加上分号,可以让代码运行的更快,因为,不需要引擎去判断哪里需要或者不需要分号了。
多条语句写在一对花括号之中,这样的称之为代码块。
if (true) {
...
...
}
关键字和保留字
关键字
ECMAScript中保留了一套有着特殊用途的关键字。可用于某些特定的操作等。按照保留下来的规则,关键字是不可以用来作为标识符的。
关键字 | 关键字 | 关键字 |
---|---|---|
this | break | do |
typeof | case | instanceof |
if | else | switch |
while | var | in |
new | catch | finally |
return | void | continue |
for | function | with |
default | throw | delete |
try | debugger* |
debugger是ECMA第五版新增的。
保留字
ECMAScript还保留了一套不能作为标识符的保留字。尽管现在这套保留字还没有特殊的用途。不过可能会作为关键字使用。
这是第三版的保留字。
保留字 | 保留字 | 保留字 | 保留字 |
---|---|---|---|
abstract | enum | int | debugger |
short | boolean | long | implements |
char | byte | interface | protected |
static | eatends | export | volatile |
super | final | native | double |
synchronized | class | float | import |
package | throws | const | public |
goto | private | transient |
第五版在非严格模式下就已经压缩了许多。
保留字 | 保留字 |
---|---|
class | enum |
extends | super |
const | export |
import |
严格模式下有些变化。
保留字 | 保留字 |
---|---|
implements | package |
public | interface |
private | static |
protected | yield |
let |
let
和yield
是第五版新增的。
在第三版使用关键字和保留字会抛出错误。在第五版中,对关键字和保留字的规则进行了一点修改。
虽然同样的是不可以使用关键字和保留字来作为标识符来说使用,但是在第五版之中可以作为了函数的属性名来使用了。最好是不要用关键字和保留字来作为属性名和标识符。避免以后再做改动时冲突。
除此之外,第5版对eval和arguments还施加了限制。在严格模式下,这两个也不能作为标识符或属性名,否则将会抛出错误。
只是简单的讲讲,可能会有点小错误。需要完整的可自行查找资料。