Ошибка говорит вам, что x
даже не существует! Он не был объявлен объявленным , что отличается от присвоения значения.
var x; // declaration
x = 2; // assignment
Если вы объявите x
, вы не получите ошибку. Вы получите предупреждение, которое говорит undefined
, потому что x
существует / был объявлен, но ему не присвоено значение.
Чтобы проверить, была ли объявлена переменная, вы можете использовать typeof
, любой другой метод проверки, существует ли переменная, вызовет ту же ошибку, что и изначально.
if(typeof x !== "undefined") {
alert(x);
}
Это проверка типа значения, хранящегося в x
. Он вернет undefined
только тогда, когда x
не был объявлен ИЛИ, если был был объявлен и еще не был назначен.