Javascript:如何取消定义(或重新定义)"let" 定义的变量

Javascript: How to Undefine (or Redefine) a "let"-defined variable

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

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

我已经尝试 deletewindow 对象和其他一些技巧中获取它,但无济于事。

假设在代码的某处,一个变量被定义为let a = 2,你想重新定义它,只需使用a = 3 if 原来的变量 a 在范围内。从 window 中删除 a 将不起作用,因为使用 leta 定义不会将其附加到 window 对象。

在脚本前输入 {,在脚本后输入 },这样您就是 运行 新块范围内的脚本。

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

Redeclaring the same variable within the same function or block scope raises a SyntaxError.

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

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