Dlaczego zmienne JavaScript są tworzone niezdefiniowane, nawet jeśli nie przejdą instrukcji if?

Weź to na przykład.

if (b) b = 1;

Błąd odniesienia. b nie jest zdefiniowane. Ma sens, ale jeśli to zrobię ...

if (b) var b = 1;

W konsoli jestem niezdefiniowany. a teraz, gdy sprawdzę, co to znaczy b, jest niezdefiniowane.

Jeśli spróbuję ponownie wykonać tę samą instrukcję if, nie przejdzie, ponieważ b nie jest ani prawdziwe, ani fałszywe, jest niezdefiniowane, ale myślę, że moje pytanie brzmi: dlaczego jest wyświetlane jako niezdefiniowane? Czy Javascript przechodzi przez instrukcję if niezależnie od tego, czy instrukcja if przechodzi, czy nie? Dzięki.

questionAnswers(2)

yourAnswerToTheQuestion