我只是遇到了一个非常愚蠢的错误,仅仅因为我忘记了某个地方的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/

10-12 00:59