是否可以取消定义let
定义的变量,然后我可以重新定义它?使用var
,我可以一遍又一遍地重新定义相同的变量。使用let
,第二次尝试定义变量时会遇到错误。
(你可能想知道我为什么要这样做,原因是因为我经常从我的浏览器控制台运行并重新运行小的单行和多行脚本,从其他地方复制和粘贴或作为书签。如果这些小脚本使用let
定义变量,则重新运行脚本失败。在这些情况下我可以继续使用var
,但我正在尝试接受新订单。无论你认为我的用例是否有效,问题就在于。)
我试图从delete
对象和其他一些黑客中window
,但无济于事。
答案 0 :(得分:2)
在脚本前输入{
,在后面输入}
,以便在新的块范围内运行脚本。
答案 1 :(得分:0)
在代码中的某个位置说,变量已被定义为let a = 2
,您想要重新定义它,只需使用a = 3
如果原始变量{{1}在范围内。从a
删除a
无法正常工作,因为使用window
的{{1}}定义不会将其附加到a
对象。
答案 2 :(得分:0)
这就是它指定的方式,如果你想要更糟糕的行为,你可以使用var。
在同一函数或块范围内重新声明相同的变量 引发了一个SyntaxError。
if (x) { let foo; let foo; // SyntaxError thrown. }
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let