如何在javascript eval()方法中观察变量值?是否有可能在eval方法中“步入”和“跨越”?例如,使用如下代码:
eval("if (true) { var a = 10; a += 20; alert(a); }");
我对IE9中的调试更感兴趣,但我也想听听一般原则。
答案 0 :(得分:1)
如果变量不存在,你怎么知道它的价值? - 没门。并且... eval === evil。
答案 1 :(得分:1)
你不能在eval方法里面。你给它的代码不是代码而是字符串。在eval()之后,它变成代码,你可以检查它。这还取决于您用于调试脚本的工具。在Chrome中,如果单击“暂停”,则执行您的eval。它会中断(因为b是未定义的)并跳过评估的代码,你可以在其中跳出,进出。您还可以使用new Function("code goes here")()
来评估代码
答案 2 :(得分:1)
有可能。你必须将SourceMap与源代码一起使用。 请查看source map,其中包含有关此技术的广泛信息。
答案 3 :(得分:0)
虽然没有完整记录或建议,但您可以观看本地变量。
var reference;
function alerta(){
alert(reference[0]);
}
// Desired to be watched must be called as function arguments
(function(a){
reference = arguments;
a = 'taco';
alerta();
a = 'updatedValue';
alerta();
})()