【发布时间】:2012-08-19 05:03:46
【问题描述】:
我一直在寻找一段时间来了解使用“use strict”有多好,但是在 IE10 出现之前它仍在争论中,但抛开这一点,我真的很想了解浏览器如何解释“use strict”海峡我说解释的原因是想了解运行时意志是否缓慢。
如果它被用作提早捕获机制来提高代码和性能,为什么我们需要在 js 文件中声明它。为什么不使用 jlint 和其他外部工具来帮助修复代码、错误和提高性能。就像我们在 Eclipse 中使用 findbugs 和其他工具来修复 java 相关的为什么不用于 JS 一样。更大的问题是浏览器会在看到严格的词时变得过于谨慎,然后最好继续使用 jslint 等外部工具。我确实参考了下面的链接,其中在“sunspider”站点中给出了示例,但不确定它是否异常或浏览器执行在看到严格的单词时确实没有改变,因此它的性能不会降低。
【问题讨论】:
-
严格模式提高性能;事实上,这是它存在的一个主要原因。完全没有理由不在您的代码中使用“use strict”。
-
在运行时进行前后对比,看看浏览器的表现如何。我猜浏览器在读取“use strict”时可能会执行不同的或更严格的解释。那就是我试图强调使用外部工具来提高性能、错误和改进 js 代码,这样就不需要在每个 js 文件中硬编码“使用严格”,最重要的是如果浏览器有 来燃烧额外的周期以不同的方式解释代码并降低性能 在周期方面(这与开发人员的痛苦无关,这里的最佳实践是关于浏览器的立场)
-
JavaScript 运行时解析代码所做的工作对于页面性能而言几乎是微不足道的因素,无论是否是严格模式。一旦代码被解析,那么它绝对无关紧要。担心这样的事情真的没有意义。如果您遇到性能问题,请查看删除
"use strict";是否有帮助(它不会),但在那之前它不是问题。 -
IE 导致“使用严格”出现问题,直到 IE10 出现支持不存在(基本上是试错)。 Safari 和其他支持也只是 部分 不完整。因此,当外部工具可用时,它可能会导致值得讨论的跨浏览器问题。 某些场景中“解析代码的 JavaScript 运行时几乎是影响页面性能的一个微不足道的因素”这句话在我们“使用严格”值得发现时仍然正确。不过谢谢分享。如果有合理的分享,我会更新所有内容。
-
"use strict" 在旧版本的 IE 中效果很好,因为它没有任何效果。
标签: javascript