以下代码已经存在于我正在使用的其中一个javascript文件中,我可能知道以下内容做了什么
它的jquery ajax,我看到了响应结果和一个由后端手动创建的json字符串。
我想知道在这里做什么是eval
success: function (response) {
var response= response.replace(/\\/g, "%5C");
eval(response);
},
答案 0 :(得分:5)
eval
执行传入的字符串,就像它是javascript代码一样。
究竟发生了什么,完全取决于response
。
也就是说,传递给response
函数的eval
变量的值被评估为普通的javascript。
如果response
为"alert('Hello from evel!');"
,您会看到一个警告框,其中包含文字“Hello from evel!”。
答案 1 :(得分:2)
eval()
在其执行上下文的上下文中将字符串作为JavaScript代码执行。一般来说,这意味着它的作用范围是什么。
它通常用于评估JSON字符串。请注意,如果您eval()
使用JSON字符串,则应将其包装在括号中((
& )
)。括号表示它将始终被评估为表达式,而不是块。