首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >严格模式性能更高吗?

严格模式性能更高吗?
EN

Stack Overflow用户
提问于 2010-06-30 09:43:38
回答 3查看 11K关注 0票数 79

一般来说,在浏览器中以严格模式执行javascript会让它的性能更高吗?在严格模式下,是否有主流浏览器做了额外的优化或使用其他技术来提高性能?

换句话说,严格模式的目的之一是允许浏览器引入额外的优化或其他性能增强吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-10 07:50:26

是严格模式,其目标之一是允许浏览器引入额外的优化或其他性能增强?

我不确定它是否打算这样做,尽管我认为答案是肯定的。

但我可以肯定地说,严格模式确实提供了这些机会,浏览器将实现这些机会--不管提供这些机会是否是ECMA委员会的有意目标。然而,我不会期望所有这些机会都能立即被抓住。在许多情况下,咒语很可能是先正确,后执行,因为严格模式目前还没有被广泛使用。(我在Mozilla的JavaScript引擎上工作,并且已经实现了严格模式的各个部分,我们以这种方式实现它作为一般规则--尽管如果我尝试一下,我可能会想到一两个例外。)

票数 29
EN

Stack Overflow用户

发布于 2010-06-30 10:22:27

严格模式实际上与性能无关,它是语言的,它的主要目标是避免那些被认为容易出错的特性。

基本上,它的目标是使语言更安全,引入了许多语义更改,还进行了额外的错误检查,并且错误是嘈杂的,在非严格的代码中,事情只会默默地失败。

关于性能,我认为浏览器厂商现在很难实现严格模式,问题是JS引擎大多基于ECMAScript 3,实现严格模式并不容易,因为严格的范围非常灵活,你可以混合非严格和严格的代码。

另请参阅:

票数 23
EN

Stack Overflow用户

发布于 2011-05-24 05:52:27

在大多数情况下,no。如果仔细研究ECMAScript 5标准文档,您会注意到几乎所有在伪代码算法中出现的严格模式都相当于:

代码语言:javascript
复制
  if (isStrictMode) {
      //throw an (early) SyntaxError or TypeError
  }
  else {
      //return
  }

关于这一点有两点需要注意:

  1. 严格模式的检查在ECMAScript 3中不存在。虽然它相对轻量级,但与ECMAScript 3对应的版本相比,JavaScript的一致性实现现在至少运行一个额外的条件检查。是的……我知道像这样的一次检查只会消耗很少的时钟周期,但由于严格模式主要是JavaScript的一个解析时间特性,所以一些小事情会增加
  2. ,当为一些网站(例如SunSpider)启用严格模式时,你最喜欢的浏览器不会表现出太大的性能下降。也就是说,在执行代码之前,性能下降就会发生,这意味着可能对最终用户是可感知的,但使用对象来测量块执行时间

在很大程度上是无法测量的

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3145966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档