java脚本initilised变量如何打印undefined?

Nov*_*Net 0 javascript

01  print(x === undefined); // prints "true"
02  var x = 3;
03   
04  //will return a value of undefined
05  var myvar = "my value";
06   
07  (function() {
08    alert(myvar);//undefined       -- here i don't understand ho it print undefined 
09    var myvar = "local value"
10  })();
Run Code Online (Sandbox Code Playgroud)

Bry*_*ing 6

因为吊装.当函数执行时,var myvar = "local value"将其推送到函数的顶部,其值为undefined(覆盖先前定义的值var myvar = "my value";).

编辑:从Adequately Good添加略微修改的示例

这意味着代码如下:

function foo() { 
    bar(); 
    var x = 1; 
}
Run Code Online (Sandbox Code Playgroud)

实际上解释如下:

function foo() { 
    var x; 
    bar();
    alert(x); //alerts undefined 
    x = 1; 
}
Run Code Online (Sandbox Code Playgroud)