以下代码存在于我正在处理的 JavaScript 文件之一中,其中包含 jQuery Ajax 代码。
我看到下面的响应结果,它是一个由后端手动创建的 JSON 字符串。
eval()
到底在这里做什么?
success: function (response) {
var response= response.replace(/\\/g, "%5C");
eval(response);
},
eval
执行传入的字符串,就好像它是 JavaScript 代码一样。
究竟会发生什么完全取决于
response
的内容。
也就是说,传递给
response
函数的 eval
变量的值将被评估为正常的 javascript。
如果
response
是 "alert('Hello from evel!');"
,您将看到一个带有文本“Hello from evel!”的警告框。
eval()
在其执行上下文中将字符串作为 JavaScript 代码执行。一般来说,这意味着作用范围为它所在的任何函数。
它通常用于评估 JSON 字符串。请注意,如果您要
eval()
处理 JSON 字符串,则应将其括在括号中 ((
& )
)。括号意味着它将始终被计算为表达式,而不是块。