更改 "let" 声明的范围
Changing the scope of "let" declaration
我想多次 运行 一个脚本,我不知道它是否是第一个 运行 - 所以我不得不问,如果是,我会声明它:
if (typeof variable == undefined) { let variable = new Set(); }
很遗憾
1.) 一直用 let variable;
重新声明会抛出错误
2.) 此变量仅存在于“if”范围内
3.) 命令“let”需要一个完整的块,如果,三元或“braclet-less if”抛出错误
我可以改变变量的范围吗?就像古老的 var
- 我对此没有问题,我只想使用 Set (还有一个很好的讲座来了解它是否可能)
也许一些“如果未声明则声明”命令?
我不确定你到底想做什么。
代码运行在浏览器中吗?
如果是这样,您可以尝试省略 var/let/const 个关键字:
if (typeof variable == undefined) { variable = new Set(); }
这将在 window 对象中创建一个变量(如果它不存在)
[编辑]:
当然,您可以通过显式说明全局变量来自的对象来使其“更好”。
对于浏览器,此代码将变为:
if (typeof window.variable == undefined) { window.variable = new Set(); }
如果您在团队中工作,此解决方案更好,但如果您刚刚起步或尝试学习,两者都可以。
您可以简单地先声明变量然后对其进行操作。
let variable; // declare variable
if (typeof variable === 'undefined') { variable = new Set(); }
它不应该抛出您提到的任何错误。
我想多次 运行 一个脚本,我不知道它是否是第一个 运行 - 所以我不得不问,如果是,我会声明它:
if (typeof variable == undefined) { let variable = new Set(); }
很遗憾
1.) 一直用 let variable;
重新声明会抛出错误
2.) 此变量仅存在于“if”范围内
3.) 命令“let”需要一个完整的块,如果,三元或“braclet-less if”抛出错误
我可以改变变量的范围吗?就像古老的 var
- 我对此没有问题,我只想使用 Set (还有一个很好的讲座来了解它是否可能)
也许一些“如果未声明则声明”命令?
我不确定你到底想做什么。 代码运行在浏览器中吗?
如果是这样,您可以尝试省略 var/let/const 个关键字:
if (typeof variable == undefined) { variable = new Set(); }
这将在 window 对象中创建一个变量(如果它不存在)
[编辑]: 当然,您可以通过显式说明全局变量来自的对象来使其“更好”。
对于浏览器,此代码将变为:
if (typeof window.variable == undefined) { window.variable = new Set(); }
如果您在团队中工作,此解决方案更好,但如果您刚刚起步或尝试学习,两者都可以。
您可以简单地先声明变量然后对其进行操作。
let variable; // declare variable
if (typeof variable === 'undefined') { variable = new Set(); }
它不应该抛出您提到的任何错误。