我只是遇到了一个非常愚蠢的错误,仅仅因为我忘记了某个地方的var
关键字,才花了20m的时间找到它。我想通了,但这只是让我思考...
“有没有一种简单的方法来查看是否将任何属性添加到全局对象?”
编辑:对不起,忘了提到上下文在Node.js中。
最佳答案
ES5的strict mode可以防止这种情况!只需在任何函数或源文件的顶部放置'use strict'
语句:
'use strict';
function foo() {
var x = 5 // Forgot the comma!
y = 6; // Fails in strict mode as an implicit global
}
foo();
短毛猫还应该检查这一点,理想情况下,您应该同时使用短毛猫和严格模式。我建议JSHint。
关于javascript - 如何检查Javascript全局对象是否已被篡改?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25336136/