ES5增加了严格模式的概念,严格模式是一种不同的Javascript解析和执行模型。ES3的一些不规范写法在这种格式下会被处理。对于不安全的活动将抛出错误。要对整个脚本启用严格模式,在脚本开头加上这一行:
"use strict"
虽然看起来像个没有赋值给任何变量的字符串。但他其实是一个预处理指令。任何支持的Javascript引擎看到他都会变成严格模式。选择这种语法形式的目的是不破坏ES3语法。
也可以到单独指定一个函数在严格模式下执行。只需要吧这个预处理指令放在函数体开头即可。
function dosomething(){
"use strict"
}
严格模式会影响Javascript执行的很多方面,因此本书用到他时会明确指出来。所有现代浏览器都支持严格模式。
语句
ES中的语句与分号结尾,省略分号意味着由解析器确定语句在哪里结尾。如下面的例子所示:
let sum=a+b;
let diff=a-b;
即使语句的分号不是必须的,也应该加上。记着加分号有助于防止省略造成的问题,比如可以避免输入内容不完整。此外,加分号有助于开发者通过删除空行来压缩代码。加分号在某种情况下也有助于提升性能。解析器会在合适的位置加上分号来纠正语法错误。
多条语句可以合并到一个C语言风格的代码块当中去。代码块由一个左花括号开始,一个右花括号结束:
if(test){
test=false;
console.log(test);
}
if之类的控制语句只在执行多条语句时要求必须要有代码快。不过,最佳的实践是始终在控制语句内部使用代码块。即使要执行的只有一条语句。如下例所示:
if(test) console.log(test);
if(test){
console.log(test);
}
在控制语句中使用代码块可以让内容更加清晰,在需要修改代码块时也可以减少出错的可能性。
关键字和保留字
ECMA-262描述了一组保留关键字。这些关键字有特殊的用途,比如表示控制语句的开始和结束。或者执行特定的操作。按照规定,保留的关键字不能用作标识符或者属性名。ECMA-262第6版规定的所有关键字如下:
规范中也保留了一组未来的保留字。同样不能用作标识符或者属性名。虽然保留字在语言中没有特定用途,但是他们是给保留字来做关键字的。