2011-05-26 65 views

回答

5

是的,这是可能做到这一点使用strict mode。通过在文件或函数的顶部放置一个包含字符串文字"use strict"的语句来启用它,以便为该范围启用严格模式。

"use strict"; 
doesNotExist = 42; // this throws a ReferenceError 

这是ECMAScript 5中的一项新功能,目前尚未被所有浏览器支持。但是,由于"use strict";是一个无效的有效语句,因此不支持它的浏览器会忽略它。因此,您可以使用它在开发过程中捕获错误,但不要依赖它在用户的浏览器中抛出异常。

+0

据我所知,严格模式只在Firefox中实现。我无法在其他地方找到它。严格模式由于其范围的工作原因是危险的。它适用于包含的文件,但不适用于函数内部。 – yakatz 2011-05-26 04:38:53

+0

@yakatz:Chrome至少有部分支持。 [尝试此测试](http://java-script.limewebs.com/strictMode/test_hosted.html)查看它在您的浏览器中的支持情况。 – hammar 2011-05-26 04:50:43

+0

Chrome 12(测试版):37/38。 IE9:0/38 ;-) – yakatz 2011-05-26 04:54:54

4

你正在寻找其他语言(我认为它来自Visual Basic中)有时被称为Option Explicit的功能。 JavaScript没有它。
如果你正在寻找一种方式来检查变量的使用,尽量JSLint

+2

+1 JSLint的和类似的工具 - JavaScript有更多的陷阱,然后只是偶然全局担心以及。 – hugomg 2011-05-26 05:20:46

0

简单地说,没有。 JS是动态的,没有经典的输入。可以的话,按照惯例创建自己的全局对象(1或以上)只使用/这些对象的属性,可能缓解这种风险

相关问题