javascript - 使用 eval() 定义 const 变量

标签 javascript node.js constants eval

当我尝试使用 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 代码中使用 letconst 不会调用严格模式。 letconstlexicalDeclarations , 这将它们的范围限制在封闭的词法范围内。

词法作用域由 block 创建并通过直接调用 eval(参见 Runtime Semantics: PerformEva step 12)。

关于javascript - 使用 eval() 定义 const 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43188732/

相关文章:

node.js - Electron : Net from Nodejs doesn't trigger events on Windows build

javascript - 动态构造包/目录中所有对象的列表

Javascript try-catch 语义(nodejs repl 中的调用堆栈)

C++ 常量和变量的连接名称

variables - 通过尽可能多地定义常量而不是变量在 Swift 中有什么好处吗?

javascript - chrome 扩展中的消息传递不起作用

javascript - 如何向 Backbone 应用程序添加类似 django 的 Formfields?

javascript - 如何使用包含 firebase 存储的 uid 在另一个文件夹中创建文件夹

javascript - 从 Chrome 扩展发送 AJAX

c++ - 非常量左值引用的示例