【发布时间】:2011-05-26 04:30:55
【问题描述】:
是否有可能通过在 JavaScript 代码中使用某些指令来在未先声明变量的情况下使用变量时引发警告或错误?
如果不可能,是否有一些插件可以强制 Eclipse(或任何其他 IDE)检测未声明的变量?
【问题讨论】:
标签: javascript
是否有可能通过在 JavaScript 代码中使用某些指令来在未先声明变量的情况下使用变量时引发警告或错误?
如果不可能,是否有一些插件可以强制 Eclipse(或任何其他 IDE)检测未声明的变量?
【问题讨论】:
标签: javascript
是的,可以使用strict mode 执行此操作。您可以通过将包含字符串文字 "use strict" 的语句放在文件或函数的顶部来启用它,以启用该范围的严格模式。
"use strict";
doesNotExist = 42; // this throws a ReferenceError
此功能现在由所有更新的浏览器提供supported。较旧的浏览器不会抛出错误,因为"use strict"; 是一个有效的语句,不支持它的浏览器会简单地忽略它。因此,您可以在开发时使用它来捕获错误,但不要依赖它在用户的浏览器中引发异常。
严格模式
JavaScript 的严格模式是一种选择加入受限制的 JavaScript 变体的方法,从而隐式选择退出“sloppy mode”。严格模式不仅仅是一个子集:它有意具有与普通代码不同的语义。
通过在任何其他语句之前包含语句
"use strict";来调用整个脚本的严格模式。
(Source, Documentation)
【讨论】:
编辑:这个答案现在不正确;请参阅上面的answer 的"use strict";(但JSLint 仍然很方便)。
此功能类似于 VB/VBA 的 Option Explicit 和 PHP7 的 declare(strict_types = 1);。
您正在寻找的功能有时在其他语言中称为Option Explicit(我认为它来自Visual Basic)。 JavaScript 没有。
如果您正在寻找检查变量使用情况的方法,请尝试JSLint。
【讨论】: