检查变量是否在全局作用域中设置?

3
有没有办法在代码中检查JavaScript变量是否在全局范围内设置了?以下是使用情况:
var pizza;

pizza.isGlobalScoped()

有没有一种方法、条件或其他方式可以确定一个变量是否不是块级作用域或在闭包内?


1
由于您添加了 reactjs 标签,请定义全局。 - Matthew Herbst
所有的块级作用域变量都是静态已知的,所以这并不特别有趣... - Bergi
为什么这被标记为ECMAScript 6? - Bergi
请看下面的注释 :) - Even Stensberg
2个回答

3
在浏览器中,您可以进行以下操作:
If ( "pizza" in window)...

0

不行。

如果你不在“严格”模式下,你可以这样声明一个变量:

thing = 'hello world';

console.log(window.thing); // => 'hello world';

除此之外,没有其他方法可以确定变量的作用域,除非您查询其所附加的某个对象。

那不是一个声明 - Bergi
我正在尝试弄清楚如何在全局范围内定义变量,而不实际将其挂载到全局命名空间中。最终,这将使我们能够在全局上下文中声明变量,并将它们传递到目标作用域,而无需在本地作用域中声明。 - Even Stensberg
({a, b} = {a: {}, b: {} }); 之后我们可以在变量上使用一个方法或其他东西,它就会挂载到你的块作用域函数/任何东西上。 - Even Stensberg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接