提醒大家小心,你们所有硬收费程序设计员:"use strict"
现有的代码可能危险! 这东西不是某种感觉良好、 快乐的贴纸, 你可以用它来“ 更好 ” 。"use strict"
pragma, 浏览器会突然在它以前从未丢弃的随机地点出现Thalrow例外, 仅仅因为在那个地点你正在做一些 默认的/失败的 JavaScript 乐于允许但严格的 JavaScript 憎恶的东西! 您可能会在代码中很少使用的电话中隐藏严格违反规则的情况, 这些电话只有在他们最终逃跑时才会扔出例外 - 比如, 在您的付费客户所使用的生产环境中!
如果你要跳下去, 申请是一个很好的主意"use strict"
与综合单元测试和严格配置的 JSHint 构建任务同时进行综合单元测试和严格配置的 JSHint 构建任务, 这将使你有信心你的模块没有黑暗的角落, 仅仅因为你打开了严格模式, 就会可怕地爆炸。 或者, 嘿, 这里还有一个选项: 不要添加"use strict"
对你的任何遗产代码, 它可能更安全 这样,诚实地说。绝对不做添加 添加"use strict"
用于您没有拥有或维持的模块,如第三方模块。
我想,即使它是一个致命的笼子动物,"use strict"
可以是好东西, 但你必须做对。 最好严格的时候是您的项目是绿地, 而您是从零开始的。 配置JSHint/JSLint
和所有警告和选择 调出所有的所有警告和选择 调得越紧,你的团队可以 胃,得到一个良好的建设/测试/资产系统Grunt+Karma+Chai
,并且只有当时N才会开始将您所有的新模块标记为"use strict"
准备纠正大量乳臭错误和警告。确保每个人都了解重力,将建筑配置为FAIL,如果JSHint/JSLint
产生任何违反行为。
当我通过我的项目时,我的项目不是一个绿地项目"use strict"
结果,我的IDE 满是红标记 因为我没有"use strict"
我一半的模块,JSHint抱怨这一点。这提醒我,我将来应该做什么。我的目标是,因为我失踪了,所以没有红色标记。"use strict"
声明,但这已经是多年之后的事了。