Por que minha variável local elevada do JavaScript está retornando indefinida, mas a variável global elevada está retornando em branco? [duplicado]
Esta pergunta já tem uma resposta aqui:
Por que obtenho o valor "resultado" desse fechamento? 3 respostasComo parte do aprendizado de JavaScript, tento escrever código para demonstrar o conceito que estou aprendendo; hoje eu estou aprendendo variáveis içadas. Aqui está o código que escrevi:
console.log("A: My name is " + name);
function happy() {
console.log ("1: I am " + feeling);
var feeling = "happy";
console.log ("2: I am " + feeling);
}
happy();
var name = "Jim";
console.log("B: My name is " + name);
Eu esperava os seguintes resultados:
A: My name is undefined
1: I am undefined
2: I am happy
B: My name is Jim
No entanto, ao testar meu código em WriteCodeOnline.com e em outra sandbox, o primeiro console.log exibeA: My name is
. Estou usando um navegador Chrome, se isso faz diferença.
Então, minha pergunta é: por que a variável local içada dentro da função retorna indefinida enquanto a variável global içada retorna um espaço em branco?