JavaScript关键字`with`是否真的被弃用了?

Tom*_*aas 2 javascript

with长期以来,使用JavaScript 语句被认为是错误的编码实践,并被建议不要使用.

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

JSC_USE_OF_WITH: The with statement cannot be used in strict mode.
Run Code Online (Sandbox Code Playgroud)

根据MDN,建议避免使用with,但是到目前为止,它似乎并没有被实际弃用,并且似乎没有包含在严格模式的代码限制的示例中.

这似乎有点矛盾和混乱.那么,with真的被弃用了吗?

dec*_*eze 5

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

为什么我们不弃用功能?

弃用不适用于网络.由于我们无法删除不良功能,因此开发人员几乎没有动力停止使用功能,因为某个人不喜欢它.标记功能"弃用"而不删除它们毫无意义.

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

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