首先
我知道 eval()
是邪恶的,但这是一个理论问题。
假设我有一个循环:
function loop() {
for(var i = 0 ;i <= 10; i++) {
$('ul').append('RUN :' + i + '<br>');
eval('break;');
}
}
虽然只是将 break;
放在 eval()
的位置它可以工作,但是当使用 eval('break;')
,它会导致错误“Uncaught SyntaxError: Illegal break statement”
此外,我知道要打破循环,我可以使用:
return false;
但为什么首先会出现这种行为?
最佳答案
eval 代码的上下文与调用者在同一命名空间中,因此变量、函数等可用于 eval 中的代码,但不能用于程序结构本身。
关于javascript - 为什么 eval() 在这里不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22439589/