一、长久以来,JavaScript 不断向前发展且并未带来任何兼容性问题。新的特性被加入,旧的功能也没有改变。
1、这么做有利于兼容旧代码,但缺点是 JavaScript 创造者的任何错误或不完善的决定也将永远被保留在 JavaScript 语言中。
2、这种情况一直持续到 2009 年 ECMAScript 5 (ES5) 的出现。ES5 规范增加了新的语言特性并且修改了一些已经存在的特性。为了保证旧的功能能够使用,大部分的修改是默认不生效的。你需要一个特殊的指令 ——“use strict”来明确地激活这些特性。
“use strict”
一、这个指令看上去像一个字符串”use strict”或者’use strict’。当它处于脚本文件的顶部时,则整个脚本文件都将以“现代”模式进行工作。
| 【示例】```javascript “use strict”;
// 代码以现代模式工作 …
|
| --- |
二、"use strict"可以被放在函数体的开头。这样则可以只在该函数中启用严格模式。但通常人们会在整个脚本中启用严格模式。<br />三、请确保"use strict"出现在脚本的最顶部,否则严格模式可能无法启用。
| 【示例】这里的严格模式就没有被启用:```javascript
alert("some code");
// 下面的 "use strict" 会被忽略,必须在最顶部。
"use strict";
// 严格模式没有被激活
| | —- |
1、只有注释可以出现在”use strict”的上面。
四、没有类似于”no use strict”这样的指令可以使程序返回默认模式。
1、一旦进入了严格模式,就没有回头路了。
浏览器控制台
一、当你使用开发者控制台运行代码时,请注意它默认是不启动use strict的。
1、有时,当use strict会对代码产生一些影响时,你会得到错误的结果。
控制台使用useStrict的方法
sihft + enter
一、你可以尝试搭配使用Shift+Enter按键去输入多行代码,然后将use strict放在代码最顶部,就像这样:
'use strict'; <Shift+Enter 换行>
// ...你的代码
<按下 Enter 以运行>
1、它在大部分浏览器中都有效,像 Firefox 和 Chrome。
包装器
一、如果依然不行,例如你使用的是旧版本的浏览器,可以将你的代码放在这样的包装器中:
(function() {
'use strict';
// ...你的代码...
})()
如何使用 “use strict” ?
一、现代 JavaScript 支持 “classes” 和 “modules” —— 高级语言结构,它们会自动启用use strict。因此,如果我们使用它们,则无需添加”use strict”指令。
二、2种使用方法:
1、将”use strict”;写在脚本的顶部。
2、当你的代码全都写在了 class 和 module 中时,你则可以将”use strict”;这行代码省略掉。