当我尝试使用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上对其进行了测试。我想念什么吗?
先感谢您!
在 eval 代码中使用 let 和 const 不会调用严格模式。 let 和 const 是 lexicalDeclarations ,将它们的范围限制为封闭的词法范围。 __ __
词法作用域由一个块和直接调用 eval 来创建(请参阅 运行时语义:PerformEva步骤12 )。