检查变量是不是设置在全局范围内?

Posted

技术标签:

【中文标题】检查变量是不是设置在全局范围内?【英文标题】:Checking if variable is set in global scope?检查变量是否设置在全局范围内? 【发布时间】:2016-08-13 23:51:34 【问题描述】:

有什么方法可以检查你的代码中是否在全局范围内设置了 javascript 变量?这是用例:

var pizza;

pizza.isGlobalScoped()

是否有一些方法/条件或任何其他方式来确定变量是否不是块作用域或闭包内?

【问题讨论】:

既然你添加了reactjs标签,定义全局。 好吧,所有块作用域的变量都是静态已知的,所以这不是特别有趣…… 为什么用 ECMAScript 6 标记? 再往下看评论:) 【参考方案1】:

在浏览器中你可以这样做

If ( "pizza" in window)...

【讨论】:

【参考方案2】:

没有。

如果你脱离了“严格”​​模式,你可以这样声明一个变量:

thing = 'hello world';

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

除此之外,除非您查询它附加到的某个对象,否则无法确定变量的范围。

【讨论】:

这不是声明 我试图弄清楚如何在全局范围内定义变量,而无需将其实际安装在全局命名空间中。最终这将导致我们在全局上下文中声明变量并将它们传递给目标范围,而无需在本地范围内声明。 --- > (a, b = a: , b: );之后,我们可以在变量上使用方法或其他东西,并将它安装到您的块作用域函数/whatever

以上是关于检查变量是不是设置在全局范围内?的主要内容,如果未能解决你的问题,请参考以下文章

在 ReactJS 中,当只有一个这样的组件时,在文件的全局范围内使用变量是不是与 useRef() 相同?

vue2.0 全局变量怎么设置

PHP 变量范围 - 在 foreach 循环中设置全局变量

C如何检查内存地址是不是仍在范围内[关闭]

Xcode:全局更改构建设置?

全局变量 v C# 中的设置