Javascript:如何取消定义(或重新定义)"let" 定义的变量
Javascript: How to Undefine (or Redefine) a "let"-defined variable
是否可以取消定义 let
定义的变量,以便我可以重新定义它?使用 var
,我可以一遍又一遍地重新定义同一个变量。使用 let
,第二次尝试定义变量时遇到错误。
(你可能想知道我为什么要这样做,原因是因为我经常从我的浏览器控制台 运行 和重新 运行 小的单行和多行脚本,从其他地方或作为小书签复制和粘贴。如果这些小脚本使用 let
定义变量,那么脚本的重新 运行 将失败。我可以继续使用 var
这些案例,但我正在尝试接受新订单。无论您认为我的用例是否有效,问题仍然存在。)
我已经尝试 delete
从 window
对象和其他一些技巧中获取它,但无济于事。
假设在代码的某处,一个变量被定义为let a = 2
,你想重新定义它,只需使用a = 3
if 原来的变量 a
在范围内。从 window
中删除 a
将不起作用,因为使用 let
的 a
定义不会将其附加到 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
是否可以取消定义 let
定义的变量,以便我可以重新定义它?使用 var
,我可以一遍又一遍地重新定义同一个变量。使用 let
,第二次尝试定义变量时遇到错误。
(你可能想知道我为什么要这样做,原因是因为我经常从我的浏览器控制台 运行 和重新 运行 小的单行和多行脚本,从其他地方或作为小书签复制和粘贴。如果这些小脚本使用 let
定义变量,那么脚本的重新 运行 将失败。我可以继续使用 var
这些案例,但我正在尝试接受新订单。无论您认为我的用例是否有效,问题仍然存在。)
我已经尝试 delete
从 window
对象和其他一些技巧中获取它,但无济于事。
假设在代码的某处,一个变量被定义为let a = 2
,你想重新定义它,只需使用a = 3
if 原来的变量 a
在范围内。从 window
中删除 a
将不起作用,因为使用 let
的 a
定义不会将其附加到 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