【问题标题】:'use strict' vs jlint & other tools'use strict' vs jlint & 其他工具
【发布时间】:2012-08-19 05:03:46
【问题描述】:

我一直在寻找一段时间来了解使用“use strict”有多好,但是在 IE10 出现之前它仍在争论中,但抛开这一点,我真的很想了解浏览器如何解释“use strict”海峡我说解释的原因是想了解运行时意志是否缓慢。

如果它被用作提早捕获机制来提高代码和性能,为什么我们需要在 js 文件中声明它。为什么不使用 jlint 和其他外部工具来帮助修复代码、错误和提高性能。就像我们在 Eclipse 中使用 findbugs 和其他工具来修复 java 相关的为什么不用于 JS 一样。更大的问题是浏览器会在看到严格的词时变得过于谨慎,然后最好继续使用 jslint 等外部工具。我确实参考了下面的链接,其中在“sunspider”站点中给出了示例,但不确定它是否异常或浏览器执行在看到严格的单词时确实没有改变,因此它的性能不会降低。

Is strict mode more performant?

【问题讨论】:

  • 严格模式提高性能;事实上,这是它存在的一个主要原因。完全没有理由不在您的代码中使用“use strict”。
  • 运行时进行前后对比,看看浏览器的表现如何。我猜浏览器在读取“use strict”时可能会执行不同的或更严格的解释。那就是我试图强调使用外部工具来提高性能、错误和改进 js 代码,这样就不需要在每个 js 文件中硬编码“使用严格”,最重要的是如果浏览器有 来燃烧额外的周期以不同的方式解释代码并降低性能 在周期方面(这与开发人员的痛苦无关,这里的最佳实践是关于浏览器的立场)
  • JavaScript 运行时解析代码所做的工作对于页面性能而言几乎是微不足道的因素,无论是否是严格模式。一旦代码被解析,那么它绝对无关紧要。担心这样的事情真的没有意义。如果您遇到性能问题,请查看删除 "use strict"; 是否有帮助(它不会),但在那之前它不是问题。
  • IE 导致“使用严格”出现问题,直到 IE10 出现支持不存在(基本上是试错)。 Safari 和其他支持也只是 部分 不完整。因此,当外部工具可用时,它可能会导致值得讨论的跨浏览器问题。 某些场景中“解析代码的 JavaScript 运行时几乎是影响页面性能的一个微不足道的因素”这句话在我们“使用严格”值得发现时仍然正确。不过谢谢分享。如果有合理的分享,我会更新所有内容。
  • "use strict" 在旧版本的 IE 中效果很好,因为它没有任何效果。

标签: javascript


【解决方案1】:

没有理由不能同时使用"use strict"jsLint / jsHint 来检查代码的质量。不同之处在于,严格模式使用社区已经同意的既定 JavaScript / ECMAScript 5 标准,而 jsLint 等代码质量工具则更加固执己见(嗯,Douglas Crockford )。这是 John Resig 描述严格模式的帖子:

John Resig on Strict Mode

如果您对性能感兴趣,我创建了一个 jsPerf test 来测试我的 jQuery 插件 Tocify,使用和不使用严格模式。性能完全一样。

【讨论】:

  • 我知道我们可以同时使用这两种方法,但在运行时它会影响浏览器的性能还是不是我想弄清楚的。我阅读并研究了大多数论坛,他们建议最好使用“use strict”,但如果我们能达到同样的效果,为什么要在“use lint”中声明最重要的是当浏览器看起来“使用严格” “它是否会以任何方式影响浏览器的性能,这是真正的问题如果浏览器对 Java 代码的解释变得更加严格并且性能会降低它更好地依赖外部工具。在严格选项之前和之后是否有任何操作以查看性能。
  • 刚刚添加了一个示例 jsPerf 测试。
猜你喜欢
  • 2011-10-23
  • 1970-01-01
  • 2014-02-17
  • 2020-12-07
  • 1970-01-01
  • 2012-02-15
  • 2011-07-10
  • 2015-01-22
  • 2023-03-10
相关资源
最近更新 更多