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();

})()

http://jsbin.com/oragan

以上是关于javascript eval方法的主要内容,如果未能解决你的问题,请参考以下文章

js_eval 方法

JavaScript中eval函数

JavaScript强大的 eval() 函数

JavaScript eval

JavaScript eval() 函数的用法

javascript中eval的用法