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

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

var pizza;

pizza.isGlobalScoped()

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

【问题讨论】:

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

标签: javascript reactjs scope closures ecmascript-6


【解决方案1】:

在浏览器中你可以这样做

If ( "pizza" in window)...

【讨论】:

    【解决方案2】:

    没有。

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

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

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

    【讨论】:

    • 这不是声明
    • 我试图弄清楚如何在全局范围内定义变量,而无需将其实际安装在全局命名空间中。最终这将导致我们在全局上下文中声明变量并将它们传递给目标范围,而无需在本地范围内声明。
    • --- > ({a, b} = {a: {}, b: {} });之后,我们可以在变量上使用方法或其他东西,并将它安装到您的块作用域函数/whatever
    猜你喜欢
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2016-11-13
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    相关资源
    最近更新 更多