一尘不染

使用eval()定义const变量

node.js

当我尝试使用var定义变量时,一切正常。

但是将其定义为const不能按预期工作,并且该变量未定义。

window.eval("var v = 5;");

document.body.innerHTML += window.v === undefined;



window.eval("const l = 5;");

document.body.innerHTML += window.l === undefined;

我已经在Chrome和Node.js上对其进行了测试。我想念什么吗?

先感谢您!


阅读 385

收藏
2020-07-07

共1个答案

一尘不染

eval 代码中使用 letconst 不会调用严格模式。 letconst
lexicalDeclarations
,将它们的范围限制为封闭的词法范围。 __ __

词法作用域由一个块和直接调用 eval 来创建(请参阅 运行时语义:PerformEva步骤12 )。

2020-07-07