Я изменяю часть кода тремя способами. В этих трех условиях поведение ведет себя по-разному. Опишите, как это выполняется?
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? И в 3-м случае я отправляю свой глобальный как аргумент, затем также печатаю undefined.