JavaScript 关键字“with”真的被弃用了吗?

2023-12-10

使用JavaScriptwith长期以来,语句一直被认为是不好的编码实践,并被建议不要这样做。

这一页表明with已被弃用,并且在严格模式下会抛出错误,我的浏览器在使用时会抛出错误with在严格模式下,Google Closure Compiler 会抛出错误,表明严格模式不允许with:

JSC_USE_OF_WITH: The with statement cannot be used in strict mode.

根据MDN,建议避免使用with,但从今天开始,似乎并没有真正被弃用, and 它似乎没有包含在严格模式的代码限制示例中.

这显得有些矛盾和混乱。那么,就是with真的被弃用了吗?


TC39 小组(发布 ECMAScript 规范的人)的官方立场很有洞察力:

我们为什么不弃用功能呢?

弃用在网络上不起作用。因为我们无法删除不良特征,开发人员没有什么动力仅仅因为某个地方的某人不喜欢某个功能而停止使用它。将功能标记为“已弃用”而不删除它们是毫无意义的。

http://tc39wiki.calculist.org/about/faq/#deprecate

因此,它可能永远不会被 ECMAScript 标准正式弃用;然而,社区内的共识是with如果您选择进入严格模式和/或选择使用某些严格编译器,那么它就足够强大,以至于大玩家(即编译器和引擎实现者)选择将其视为已弃用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 关键字“with”真的被弃用了吗? 的相关文章