Javascript 为什么eval()在这里不起作用? 首先

Javascript 为什么eval()在这里不起作用? 首先,javascript,Javascript,我知道eval()是邪恶的,但这是一个理论问题 假设我有一个循环: function loop() { for(var i = 0 ;i <= 10; i++) { $('ul').append('RUN :' + i + '<br>'); eval('break;'); } } 但是为什么会出现这种行为呢?eval-ed代码的上下文与调用者的上下文位于同一命名空间中,因此变量、函数等可用于eval中的代码,但程序结构本

我知道
eval()
是邪恶的,但这是一个理论问题

假设我有一个循环:

function loop() {
    for(var i = 0 ;i <= 10; i++) {
        $('ul').append('RUN :' + i + '<br>');
            eval('break;');
    }
}

但是为什么会出现这种行为呢?

eval-ed代码的上下文与调用者的上下文位于同一命名空间中,因此变量、函数等可用于eval中的代码,但程序结构本身不可用。

可能。这不是循环,只是执行
eval('break;')
会得到相同的错误,as break不应该是eval'ed@adeneo,我的问题是为什么?因为它是一个语句,对语句求值并返回结果有什么好处,
break
语句在
eval()
中没有上下文,所以它是一个错误,这就像是随机地在某处随机键入<代码>断裂>代码。因为你只是在无处的地方评估<代码>断裂/代码>,就像你在控制台中只键入了<代码>断裂>代码>。你指的是“不是程序结构”,比如“断裂”语句,或者“任何”,“而”,卷曲的支撑等等。我会记住的。。是Eval只是作为一个不同的控制台工作…仅此而已!!而且非常危险。。当我得到两张反对票时……)
return false;