严格模式

除了正常运行模式,ECMAscript 5添加了第二种运行模式:“严格模式”(strict mode)。顾名思义,这种模式使得Javascript在更严格的条件下运行。

设立”严格模式”的目的,主要有以下几个:

 - 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;

 - 消除代码运行的一些不安全之处,保证代码运行的安全;

 - 提高编译器效率,增加运行速度;

 - 为未来新版本的Javascript做好铺垫。

进入”严格模式”的标志,是下面这行语句:

 “use strict”;

如何调用

“严格模式”有两种调用方法,适用于不同的场合。

1 针对整个脚本文件

将”use strict”放在脚本文件的第一行,则整个脚本都将以”严格模式”运行。如果这行语句不在第一行,则无效,整个脚本以”正常模式”运行。如果不同模式的代码文件合并成一个文件,这一点需要特别注意。

(严格地说,只要前面不是产生实际运行结果的语句,”use strict”可以不在第一行,比如直接跟在一个空的分号后面。)

 

 

上面的代码表示,一个网页中依次有两段Javascript代码。前一个script标签是严格模式,后一个不是。

2 针对单个函数

将”use strict”放在函数体的第一行,则整个函数以”严格模式”运行。

 function strict(){
 “use strict”;
 return “这是严格模式。”;
 }

 function notStrict() {
 return “这是正常模式。”;
 }

3 脚本文件的变通写法

因为第一种调用方法不利于文件合并,所以更好的做法是,借用第二种方法,将整个脚本文件放在一个立即执行的匿名函数之中。

 (function (){

 “use strict”;

 // some code here

})();