W ramach nauki JavaScript próbuję napisać kod, aby zademonstrować koncepcję, której się uczę; dzisiaj uczę się zmiennych podnoszonych. Oto kod pisałem:Dlaczego moja JavaScript jest podnoszona zmienna lokalna zwracająca undefined, ale zmienna globalna hoisted zwraca puste?
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);
Spodziewałem następujące wyniki:
A: My name is undefined
1: I am undefined
2: I am happy
B: My name is Jim
Jednak podczas testowania mojego kodu na WriteCodeOnline.com aw innej piaskownicy, pierwsze console.log wyświetlacze A: My name is
. Używam przeglądarki Chrome, jeśli to robi różnicę.
Moje pytanie brzmi: dlaczego zmienna lokalna wewnątrz funkcji zwraca undefined, podczas gdy zmienna globalna hoisted zwraca wartość pustą?
wydaje się, że kolejne pytanie istnieje, że odpowiada na moje pytanie. Gdybym znał odpowiedź na moje pytanie, prawdopodobnie byłbym w stanie znaleźć również inne pytanie. Nie mam problemu, jeśli to pytanie jest zamknięte. – JimLockwood