一、长久以来,JavaScript 不断向前发展且并未带来任何兼容性问题。新的特性被加入,旧的功能也没有改变。
1、这么做有利于兼容旧代码,但缺点是 JavaScript 创造者的任何错误或不完善的决定也将永远被保留在 JavaScript 语言中。
2、这种情况一直持续到 2009 年 ECMAScript 5 (ES5) 的出现。ES5 规范增加了新的语言特性并且修改了一些已经存在的特性。为了保证旧的功能能够使用,大部分的修改是默认不生效的。你需要一个特殊的指令 ——“use strict”来明确地激活这些特性。

“use strict”

一、这个指令看上去像一个字符串”use strict”或者’use strict’。当它处于脚本文件的顶部时,则整个脚本文件都将以“现代”模式进行工作。

| 【示例】```javascript “use strict”;

// 代码以现代模式工作 …

  1. |
  2. | --- |
  3. 二、"use strict"可以被放在函数体的开头。这样则可以只在该函数中启用严格模式。但通常人们会在整个脚本中启用严格模式。<br />三、请确保"use strict"出现在脚本的最顶部,否则严格模式可能无法启用。
  4. | 【示例】这里的严格模式就没有被启用:```javascript
  5. alert("some code");
  6. // 下面的 "use strict" 会被忽略,必须在最顶部。
  7. "use strict";
  8. // 严格模式没有被激活

| | —- |

1、只有注释可以出现在”use strict”的上面。
四、没有类似于”no use strict”这样的指令可以使程序返回默认模式。
1、一旦进入了严格模式,就没有回头路了。

浏览器控制台

一、当你使用开发者控制台运行代码时,请注意它默认是不启动use strict的。
1、有时,当use strict会对代码产生一些影响时,你会得到错误的结果。

控制台使用useStrict的方法

sihft + enter

一、你可以尝试搭配使用Shift+Enter按键去输入多行代码,然后将use strict放在代码最顶部,就像这样:

  1. 'use strict'; <Shift+Enter 换行>
  2. // ...你的代码
  3. <按下 Enter 以运行>

1、它在大部分浏览器中都有效,像 Firefox 和 Chrome。

包装器

一、如果依然不行,例如你使用的是旧版本的浏览器,可以将你的代码放在这样的包装器中:

  1. (function() {
  2. 'use strict';
  3. // ...你的代码...
  4. })()

如何使用 “use strict” ?

一、现代 JavaScript 支持 “classes” 和 “modules” —— 高级语言结构,它们会自动启用use strict。因此,如果我们使用它们,则无需添加”use strict”指令。
二、2种使用方法:
1、将”use strict”;写在脚本的顶部。
2、当你的代码全都写在了 class 和 module 中时,你则可以将”use strict”;这行代码省略掉。