<bdo id='Zex9Q'></bdo><ul id='Zex9Q'></ul>

      <tfoot id='Zex9Q'></tfoot>

        <small id='Zex9Q'></small><noframes id='Zex9Q'>

        <legend id='Zex9Q'><style id='Zex9Q'><dir id='Zex9Q'><q id='Zex9Q'></q></dir></style></legend>
      1. <i id='Zex9Q'><tr id='Zex9Q'><dt id='Zex9Q'><q id='Zex9Q'><span id='Zex9Q'><b id='Zex9Q'><form id='Zex9Q'><ins id='Zex9Q'></ins><ul id='Zex9Q'></ul><sub id='Zex9Q'></sub></form><legend id='Zex9Q'></legend><bdo id='Zex9Q'><pre id='Zex9Q'><center id='Zex9Q'></center></pre></bdo></b><th id='Zex9Q'></th></span></q></dt></tr></i><div id='Zex9Q'><tfoot id='Zex9Q'></tfoot><dl id='Zex9Q'><fieldset id='Zex9Q'></fieldset></dl></div>
      2. 使用 eval() 定义 const 变量

        时间:2024-04-19
        <legend id='4wKGw'><style id='4wKGw'><dir id='4wKGw'><q id='4wKGw'></q></dir></style></legend>
          <bdo id='4wKGw'></bdo><ul id='4wKGw'></ul>

          <small id='4wKGw'></small><noframes id='4wKGw'>

              <i id='4wKGw'><tr id='4wKGw'><dt id='4wKGw'><q id='4wKGw'><span id='4wKGw'><b id='4wKGw'><form id='4wKGw'><ins id='4wKGw'></ins><ul id='4wKGw'></ul><sub id='4wKGw'></sub></form><legend id='4wKGw'></legend><bdo id='4wKGw'><pre id='4wKGw'><center id='4wKGw'></center></pre></bdo></b><th id='4wKGw'></th></span></q></dt></tr></i><div id='4wKGw'><tfoot id='4wKGw'></tfoot><dl id='4wKGw'><fieldset id='4wKGw'></fieldset></dl></div>

                  <tbody id='4wKGw'></tbody>
                <tfoot id='4wKGw'></tfoot>
                • 本文介绍了使用 eval() 定义 const 变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

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

                  When I try to define a variable using var, everything is working.

                  但是将其定义为 const 并没有按预期工作,并且变量未定义.

                  But defining it as const is not working as expected and the variable is undefined.

                  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 上对其进行了测试.我错过了什么吗?

                  I have tested it on Chrome and Node.js. Am I missing something?

                  提前谢谢你!

                  推荐答案

                  eval 代码中使用 letconst 不会调用 strict模式.letconstlexicalDeclarations,将它们的范围限制在封闭的词法范围内.

                  Using let and const in eval code doesn't invoke strict mode. let and const are lexicalDeclarations, which limits their scope to the enclosing lexical scope.

                  词法作用域由块和直接调用 eval 创建(参见 运行时语义:PerformEva 步骤 12).

                  A lexical scope is created by a block and by direct call to eval (see Runtime Semantics: PerformEva step 12).

                  这篇关于使用 eval() 定义 const 变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:为什么链接到 Promise.resolve() 的 .then() 允许重新分配 const 声明? 下一篇:当它是程序的第一行时,JS 错误“重新声明"var?

                  相关文章

                • <legend id='1Pdgl'><style id='1Pdgl'><dir id='1Pdgl'><q id='1Pdgl'></q></dir></style></legend>

                    1. <tfoot id='1Pdgl'></tfoot>
                        <bdo id='1Pdgl'></bdo><ul id='1Pdgl'></ul>

                    2. <i id='1Pdgl'><tr id='1Pdgl'><dt id='1Pdgl'><q id='1Pdgl'><span id='1Pdgl'><b id='1Pdgl'><form id='1Pdgl'><ins id='1Pdgl'></ins><ul id='1Pdgl'></ul><sub id='1Pdgl'></sub></form><legend id='1Pdgl'></legend><bdo id='1Pdgl'><pre id='1Pdgl'><center id='1Pdgl'></center></pre></bdo></b><th id='1Pdgl'></th></span></q></dt></tr></i><div id='1Pdgl'><tfoot id='1Pdgl'></tfoot><dl id='1Pdgl'><fieldset id='1Pdgl'></fieldset></dl></div>

                      <small id='1Pdgl'></small><noframes id='1Pdgl'>