仅在调试中使用“严格”
"use strict" only in debug?
我想知道当我完成编程并将我的 JavaScript 文档发布给任何人查看时,是否真的有必要包含"use strict"
。我喜欢使用它,因为要检查我是否以良好的方式编码。
那么,当我向公众发布我的 JavaScript 文件时,我应该包含还是只是删除使用"use strict"
?
我问的原因是节省我的JavaScript文件中的空间。
我发现了两种关于在生产中使用strict mode
的意见:
没有理由在生产代码中发布"使用严格"。没有性能提升(不久前与 V8 团队和 Brendan 验证过),我也不需要用户的 VM 进行额外的检查。仅保留开发,在构建过程中将其剥离。这样,您还可以避免引用的串联问题。
和:
可能不会有性能提升,但也不会有性能损失。在生产中,甚至比在开发中更重要的是,您希望确保注意到错误。最大限度地减少代码的开发版本和生产版本之间的更改是能够快速有效地调试问题的关键。是的,它在开发过程中有所帮助,但没有理由将其从生产代码中拉出。
来源在底部的评论中
当然,"use strict"
的12b
重量不会改变任何事情。
"use strict";
行构成文件的 13 个字节。我建议这甚至不太可能接近文件大小的 1%。
如果您担心带宽,请使用众多简化器之一来减小文件大小,以及服务器端的 gzip 通信。手动删除 13 个字节是一种虚假的经济。
确切地说,哪个简化器可能取决于您的代码,但这里有一些建议。
当然,这是一个微优化,但是如果你将(比如25个)JS模块连接在一起,那就是突然的250字节。
在高流量应用程序中部署到生产环境,例如每分钟 1000 次点击,即如果您的构建删除了'use strict';
,则可以防止每年 130+ Gb 的流量
我敢肯定,这将在 AWS 上节省几美元......
除了不值得花时间之外,我还没有看到令人信服的论据来保持生产。可能不是,但是如果您已经有一个构建系统,并且知道如何以最小的努力实现这一目标,为什么不呢?
我目前建议您删除任何用于生产的代码中的"use strict"(并在调试中使用它)。
但是,我不会仅仅为了使文件更小而删除它。我删除它的原因是因为它目前似乎对 JavaScript 在执行时的实际性能有负面影响。希望这最终会改变,但现在出于性能原因,我会省略它。
- 如何在vs2002中调试html页面
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 如何在visualstudio中调试web api时编辑javascript文件
- 我是否可以检测到javascript正在被卸载(作为调试模式)
- 注意:wp_enqueue_script调用不正确.在 Wordpress 调试模式下
- 如何调试Javascript代码或函数
- 基于Web的JS调试库
- 调试此代码?警报不起作用
- 为什么我的JavaScript在Safari上的严格模式下不能正常工作
- 如何在 JavaScript 代码中调试点击事件处理
- 调试一个简单的jQuery函数;想知道是否与其他代码冲突
- 使用Browserify和Typescript的源映射进行Webstorm调试
- 如何在加载完整页面后严格执行javascript代码
- VS2010 javascript调试器希望在VS2010的新实例中启动
- 如何在调试模式停止后查看Visual Studio 2015 Javascript控制台
- 仅在页面加载时调试Jquery
- 将服务器js文件替换为本地js进行调试
- 广告块加调试,undersanding代码库
- 变量在运行时未定义,但在使用调试器时定义
- 仅在调试中使用“严格”