【问题标题】:Is this line creating globals?这条线是在创建全局变量吗?
【发布时间】:2012-04-14 08:20:34
【问题描述】:

这条线是否在创建全局变量?

var first=second=third=fourth=fifth="Hello, ";

我不完全确定如何测试它:)

【问题讨论】:

  • 您可以通过查看window 来测试某些内容是否是全局的。 console.log(window.first).
  • @Rocket 我会试试的,(顺便说一句,applejack>pinkie pie)
  • @Chuck,你的只是 jsfiddle.net 的直接链接。显然 OP 知道如何运行 javascript,所以我几乎看不出这有什么帮助。
  • @Yim:这些拼写“Rarity”的方式真的很奇怪。

标签: javascript global-variables var


【解决方案1】:

first 将被声明为局部变量,但其他变量将是全局变量。

要解决此问题,请尝试以下操作:

var first, second, third, fourth, fifth;
first = second = third = fourth = fifth = "Hello, ";

或全部在一行:

var first, second, third, fourth, fifth = fourth = third = second = first = "Hello, ";

【讨论】:

    【解决方案2】:

    是的,在这种情况下,除了first 之外的所有内容都是全局的。您可以通过运行在浏览器的控制台中进行测试

    (function() { var x = y = 1; })();
    console.log(y); // 1
    

    也许你想要var y, x = y = 1;

    【讨论】:

      【解决方案3】:

      首先是本地的,其余的是全局的。见this script from JS Fiddle

      【讨论】:

        【解决方案4】:

        是的,首先声明你的变量:

        var first,second,third,fourth,fifth;
        first=second=third=fourth=fifth="Hello, ";
        

        除了变量都在预期范围内之外,将做同样的事情。

        您的方式只是声明一个名为 first 的变量,并使用其他四个变量而不声明它们,因此它们是全局变量。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-10-25
          • 2019-08-26
          • 2022-06-22
          • 2017-11-12
          相关资源
          最近更新 更多