我正在以三种方式修改代码。在这三个条件下它的行为有所不同。请描述它是如何执行的?
var a=1;
function myFunc(){
console.log(a);
console.log(a)
}
myFunc();
//Output is:
1
1
var a=1;
function myFunc(){
console.log(a);
var a=2;
console.log(a)
}
myFunc();
//Output is:
undefined
2
var a=1;
function myFunc(){
console.log(a);
var a=2;
console.log(a)
}
myFunc(a);
//Output is:
undefined
2
在第二种情况下为什么会打印undefined?而在第三种情况下,即使我将全局变量a作为参数发送,它也会打印undefined。