"use strict"仅用于调试?

use*_*627 7 javascript minify use-strict

我想知道是否真的有必要包括"use strict"当我完成编程并将我的JavaScript文档发布给任何人看.我喜欢使用它,因为要检查我是否以良好的方式编码.

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

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

gdo*_*ica 9

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

没有理由在您的生产代码中发布"use strict".没有性能提升(不久前在V8团队和Brendan验证过)并且我也不需要用户的VM进行额外检查.保持它的开发,在构建期间将其剥离.这样您还可以避免引用的串联问题.

和:

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

来源位于底部的评论中

当然,那些12b重量"use strict"不会改变一件事.

  • 是的我确实使用严格,但我最近一直在做更多的服务器端,所以没有兼容性问题.可能有几个,但首先想到的是函数的调用上下文.在严格模式下,它可以是任何值,包括基元,甚至是"null"或"undefined",而在非严格模式下,您可以保证它始终是一个对象,默认为"undefined".另一个变化是`arguments`对象映射到形式参数.严格来说,它们是完全独立的价值观.更改参数不会影响`arguments`对象,反之亦然. (2认同)