需要了解ajax响应代码中的eval

时间:2011-05-19 06:19:22

标签: javascript jquery

以下代码已经存在于我正在使用的其中一个javascript文件中,我可能知道以下内容做了什么

它的jquery ajax,我看到了响应结果和一个由后端手动创建的json字符串。

我想知道在这里做什么是eval

success: function (response) {
 var response= response.replace(/\\/g, "%5C");
 eval(response); 
 },

2 个答案:

答案 0 :(得分:5)

eval执行传入的字符串,就像它是javascript代码一样。

究竟发生了什么,完全取决于response

的内容

也就是说,传递给response函数的eval变量的值被评估为普通的javascript。

如果response"alert('Hello from evel!');",您会看到一个警告框,其中包含文字“Hello from evel!”。

答案 1 :(得分:2)

eval()在其执行上下文的上下文中将字符串作为JavaScript代码执行。一般来说,这意味着它的作用范围是什么。

它通常用于评估JSON字符串。请注意,如果您eval()使用JSON字符串,则应将其包装在括号中((& ))。括号表示它将始终被评估为表达式,而不是块。