前端技术文档和网站数据接口使用指南详情
网站开发中有关html、css、js等前端技术文档和易助科技网网站数据接口使用文档及相关资料下载!

现代模式 use strict 简书

来源:易助科技网浏览量:9收藏

简介


很长一段时间以来,JavaScript的发展没有兼容性问题。新功能被添加到语言中,而旧功能没有改变。

这样做的好处是永远不会破坏现有的代码。但不利的一面是,JavaScript创建者所做的任何错误或不完美的决定都会永远停留在语言中。

这种情况一直持续到2009年ECMAScript 5(ES5)出现。它为该语言添加了新功能,并修改了一些现有功能。为了保持旧代码的正常工作,大多数这样的修改在默认情况下都是关闭的。您需要使用一个特殊指令来显式启用它们:“use strict”。



“use strict”


该指令看起来像一个字符串:“use strict”或“use strictly”。当它位于脚本的顶部时,整个脚本以“现代”的方式工作。例如:


"use strict";

// this code works the modern way
...


“use strict”可以放在函数的开头。这样做只会在该函数中启用严格模式。但通常人们会在整个脚本中使用它。


💡 请确保“use strict”在顶部,否则可能无法启用严格模式。


alert("some code");
// "use strict" below is ignored--it must be at the top

"use strict";

// strict mode is not activated


没有办法取消严格使用,没有像“no use strict”这样的指令可以将引擎恢复到旧的行为。一旦我们进入严格模式,就没有回头路了。



Browser console


当您使用开发人员控制台运行代码时,请注意,默认情况下它不会使用strict。有时,当使用strict产生影响时,您会得到不正确的结果。那么,如何在控制台中实际使用strict呢?

首先,您可以尝试按Shift+Enter键输入多行,并将use strict放在顶部,如下所示:


'use strict'; <Shift+Enter for a newline>
//  ...your code
<Enter to run>


它适用于大多数浏览器,即Firefox和Chrome。如果没有,例如在旧浏览器中,有一种丑陋但可靠的方法可以确保严格使用。把它放在这种包装里面:


(function() {
  'use strict';

  // ...your code here...
})()



我们应该使用 “use strict” 吗?


这个问题听起来可能很明显,但事实并非如此。有人可以建议以“use strict”开始脚本,但现代JavaScript支持“类”和“模块”——高级语言结构,可以自动严格使用。因此,如果我们使用它们,我们就不需要添加“use strict”指令。


💡 因此,对于“use strict”,当您的代码都在类和模块中时,您可以省略它。