javascript eval方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript eval方法相关的知识,希望对你有一定的参考价值。
如何在javascript eval()方法中查看变量值?是否有可能在eval方法中“步入”和“跨越”?例如,使用如下代码:
eval("if (true) { var a = 10; a += 20; alert(a); }");
我对IE9中的调试更感兴趣,但我也想听听一般原则。
答案
你不能在eval方法里面。你给它的代码不是代码而是字符串。在eval()之后,它变成代码,你可以检查它。这还取决于您用于调试脚本的工具。在Chrome中,如果单击“暂停”,则执行您的eval。它会中断(因为b是未定义的)并跳过评估的代码,你可以在其中跳出,进出。你也可以使用new Function("code goes here")()
来评估代码
另一答案
如果变量不存在,你怎么知道它的价值? - 没门。并且... eval ===邪恶。
另一答案
有可能的。你必须将SourceMap与源代码一起使用。看看source map,它有关于这种技术的广泛信息。
另一答案
虽然没有完整记录或建议,但您可以观察局部变量。
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();
})()
以上是关于javascript eval方法的主要内容,如果未能解决你的问题,请参考以下文章