gpt4 book ai didi

javascript - 是否可以使用 "use strict";有条件地,什么时候说你在开发环境中?

转载 作者:行者123 更新时间:2023-11-29 19:37:24 25 4
gpt4 key购买 nike

(所有示例均来自 chrome)这不起作用:

if (InDevEnvironment) {
"use strict";
undeclaredVar = 1;
}
undeclaredVar2 = 1;

也就是说,严格模式不适用,两个未声明的变量都没有设置为全局

然而这是可行的:

"use strict";
undeclaredVar = 1;
undeclaredVar2 = 1;

即应用严格模式,两行都会产生错误

问题 - 有没有一种方法可以根据某些条件 JavaScript 语句来应用严格模式?

最佳答案

is there a way to apply strict mode, depending on some conditional JavaScript statement

合理,不。有一些不合理的方法可以做到这一点(在我的脑海中:使用ajax加载你的脚本并在顶部添加/不添加“use strict”;在将其放入 script 元素并将该元素添加到页面之前)。

但如果你能避免的话,我不会。没有特别好的理由删除它,就把它留在那里。如果代码已经通过了开发和测试,那么在生产中使用它应该不是问题,并且如果错误错过了开发和测试,很可能会为您提供重要的、节省时间的信息。 (客户对客户支持:“它坏了” 对客户的支持:“按 F12 并单击控制台,你看到红色的东西了吗?” 客户​​对支持:“它说 ReferenceError...” --结果!)


您的问题专门询问了有关使用 JavaScript 变量来执行此操作的问题,但是您不是可以很容易地使用 JavaScript 变量来执行此操作。例如,您可以使用脚本缩小器/组合器来执行此操作:

"use strict" 在函数和代码编译单元级别工作,"use strict" 必须是 first non-comment在单位。所以这是严格的代码:

"use strict";
doSomethingCool();

这不是严格的代码:

doSomethingCool();
"use strict";
/* This would not be strict code here */

第二个例子中的"use strict"只是一个死表达式,没有任何作用。

所以在你的模块中,当你将它们迁移到严格模式时,你可以添加 "use strict"; 到模块的顶部,然后让你的脚本组合器添加一些东西 组合和缩小时位于其前面。这具有禁用语句的效果。由于您大概不使用脚本组合器/压缩器(而是直接加载模块),严格模式将在开发中启用,但不会在生产中启用。

关于javascript - 是否可以使用 "use strict";有条件地,什么时候说你在开发环境中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24740532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com