7

我想知道是否真的有必要"use strict"在我完成编程并将我的 JavaScript 文档发布给任何人查看时包含在内。我喜欢使用它,因为可以检查我是否以一种好的方式编码。

"use strict"那么,当我向公众发布我的 JavaScript 文件时,我应该包含还是删除使用?

我问的原因是为了节省我的 JavaScript 文件中的空间。

4

4 回答 4

9

strict mode我发现了两种关于在生产中使用的意见:

没有理由在您的生产代码中使用“use strict”。没有性能提升(不久前通过 V8 团队和 Brendan 进行了验证),我也不需要用户的虚拟机进行额外的检查。仅保留开发,在构建期间将其剥离。这样,您还可以避免您引用的串联问题。

和:

可能没有性能提升,但也没有性能损失。在生产中,甚至比在开发中更重要的是,您希望确保自己注意到错误。最大限度地减少代码的开发和生产版本之间的更改是能够快速有效地调试问题的关键。是的,它在开发过程中有所帮助,但没有理由将其从生产代码中删除。

来源在底部的评论中

当然,那些12b重量"use strict"不会改变任何事情。

于 2012-06-11T20:04:57.683 回答
2

该行"use strict";构成文件的 13 个字节。我建议这甚至不太可能接近文件大小的 1%。

如果您担心带宽,请使用众多缩小器之一来减小文件大小,以及服务器端的 gzip 压缩。手动删除 13 个字节是一种错误的经济方式。

究竟哪个 minifier 可能取决于您的代码,但这里有一些建议

于 2012-06-11T20:02:27.373 回答
2

当然它是一个微优化,但如果你将(比如 25 个)JS 模块连接在一起,那么突然就变成了 250 字节。

在高流量应用程序中部署到生产环境,例如每分钟 1000 次点击,如果您的构建删除'use strict';

我敢肯定,这会在 AWS 上节省几美元...

除了不值得花时间之外,我还没有看到一个令人信服的论据来让它继续生产。可能不是,但如果您已经有一个构建系统,并且知道如何以最小的努力完成它,为什么不呢?

于 2013-07-19T17:55:07.873 回答
0

我目前建议您删除任何用于生产的代码中的“use strict”(并仅在调试中使用它)。

但是,我不会仅仅为了使文件更小而将其删除。我删除它的原因是因为它目前似乎对 JavaScript 在执行时的实际性能有负面影响。希望这最终会改变,但现在出于性能原因我会省略它。

于 2016-02-09T18:50:50.960 回答