当我尝试使用 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 , 这将它们的范围限制在封闭的词法范围内。
词法作用域由 block 创建并通过直接调用 eval(参见 Runtime Semantics: PerformEva step 12)。
关于javascript - 使用 eval() 定义 const 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43188732/