【问题标题】:Javascript: How to Undefine (or Redefine) a "let"-defined variableJavascript:如何取消定义(或重新定义)“let”定义的变量
【发布时间】:2018-09-12 22:21:53
【问题描述】:

是否可以取消定义 let 定义的变量,以便我可以重新定义它?使用var,我可以一遍又一遍地重新定义同一个变量。使用let,第二次尝试定义变量时遇到错误。

(您可能想知道我为什么要这样做,原因是我经常从浏览器控制台运行和重新运行小的单行和多行脚本,从其他地方复制和粘贴或作为书签。如果这些小脚本使用let 定义了一个变量,那么重新运行脚本会失败。在这些情况下,我可以继续使用var,但我正在尝试接受新的顺序。不管是否你认为我的用例是有效的,问题是存在的。)

我尝试通过window 对象和其他一些技巧来delete 它,但无济于事。

【问题讨论】:

  • 答案是“否”,但有针对您的具体问题的解决方法。
  • 一种解决方法是检查它是否未定义,并且仅在这种情况下定义它 - 否则只需分配给它

标签: javascript var let


【解决方案1】:

这只是它指定的方式,如果你想要更糟糕的行为,你可以使用 var。

在同一个函数或块范围内重新声明同一个变量 引发 SyntaxError。

if (x) {
  let foo;
  let foo; // SyntaxError thrown.
}

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let

【讨论】:

    【解决方案2】:

    在脚本前输入{,在其后输入},以便在新的块作用域内运行脚本。

    【讨论】:

      【解决方案3】:

      假设在代码中的某处,变量已定义为let a = 2,而您想重新定义它,只需使用a = 3 如果原始变量a 在范围内。从window 中删除a 将不起作用,因为使用let 定义a 不会将其附加到window 对象。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-01-16
        • 1970-01-01
        • 1970-01-01
        • 2016-06-16
        • 2018-08-06
        • 1970-01-01
        • 2016-06-10
        相关资源
        最近更新 更多