如何在JavaScript中的全局变量的工作? [重复](How does global var

2019-10-19 16:43发布

这个问题已经在这里有一个答案:

  • 在JavaScript惊讶的是全局变量的值未定义 5回答

我是个新手的JavaScript。 我一般程序的Java。 我被这下面的代码片段混淆。

<script>
 x = "foo";

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

bar("baz");

</script>

当我运行上面的代码剪断其打印

 x = undefined

为什么它打印不确定的,因为x是一个全局变量,它应该打印富吗? 谁能解释?

Answer 1:

因为x是一个全局变量,它应该打印富权

请将它不是阴影var x = "baz"; 声明进一步在你的功能; 由于吊装,如果你写它执行的函数

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

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

为了使代码做你想做,你可以简单地写什么x = "baz"; 代替var x = "baz";



Answer 2:

尝试这种输出是x = foo

var x="foo";
function bar(p){

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

bar("baz");


文章来源: How does global variables in JavaScript work? [duplicate]