【问题标题】:How does global variables in JavaScript work? [duplicate]JavaScript 中的全局变量是如何工作的? [复制]
【发布时间】:2014-03-28 05:50:49
【问题描述】:

我是 javascript 的新手。我通常用Java编程。我对以下代码 sn-p 感到困惑。

<script>
 x = "foo";

function bar(p){
  if (p){
    document.writeln("x = " + x);
  } else {
    var x = "baz";
  }
}

bar("baz");

</script>

当我运行上面的代码时,它的打印被剪断了

 x = undefined

为什么它打印 undefined,因为 x 是一个全局变量,它应该打印 foo 对吗?谁能解释一下?

【问题讨论】:

  • 不要将 var 添加到 var x = "baz"; 中的 x 中,只需 x = "baz";

标签: javascript global-variables scope


【解决方案1】:

因为 x 是一个全局变量,它应该正确打印 foo

如果它没有被你的函数中的var x = "baz"; 声明遮蔽,它会;由于提升它会像你写的那样执行函数

function bar(p){
  var x; // = undefined

  if (p){
    document.writeln("x = " + x);
  } else {
    x = "baz";
  }
}

要让代码做你想做的事,你可以简单地写x = "baz";而不是var x = "baz";

【讨论】:

    【解决方案2】:

    试试这个输出是x = foo

    var x="foo";
    function bar(p){
    
      if (p){
        document.writeln("x = " + x);
      } else {
        x = "baz";
      }
    }
    
    bar("baz");
    

    【讨论】:

      猜你喜欢
      • 2014-09-14
      • 1970-01-01
      • 1970-01-01
      • 2013-08-02
      • 1970-01-01
      • 1970-01-01
      • 2020-11-30
      • 1970-01-01
      • 2014-01-22
      相关资源
      最近更新 更多