如果我没有弄错,eval会在给定的字符串中执行有效的代码
eval("alert('hey')");
Run Code Online (Sandbox Code Playgroud)
和
setTimeout("alert('hey')",1000);
Run Code Online (Sandbox Code Playgroud)
做同样的事情,只有一个计时器.设置超时和eval一样有风险吗?
为什么这段代码有效?
setTimeout("document.body.innerHTML = 'TEST'", 1000)Run Code Online (Sandbox Code Playgroud)
不应该吗?
setTimeout(function() {
document.body.innerHTML = 'TEST'
}, 1000)
Run Code Online (Sandbox Code Playgroud)
如何setTimeout将字符串转换为函数?