Если вы хотите проверить, была ли переменная инициализирована или определена (т. е. проверить, была ли переменная объявлена и ей присвоено значение), вы можете использовать оператор typeof
.
Самая важная причина использования оператора typeof
заключается в том, что он не вызывает ошибку ReferenceError
, если переменная не была объявлена. Давайте посмотрим на следующий пример:
<script>
var x;
var y = 10;
if(typeof x !== 'undefined'){
// этот оператор не будет выполняться
alert("Variable x is defined.");
}
if(typeof y !== 'undefined'){
// этот оператор будет выполняться
alert("Variable y is defined.");
}
// Попытка получить доступ к необъявленной переменной z
if(typeof z !== 'undefined'){
// этот оператор не будет выполняться
alert("Variable z is defined.");
}
/* Выдаст Uncaught ReferenceError: z не определен, и остановит выполнение скрипта */
if(z !== 'undefined'){
// этот оператор не будет выполняться
alert("Variable z is defined.");
}
/* Если выполняется следующий оператор, он также выдаст Uncaught ReferenceError: z не определен */
if(z){
// этот оператор не будет выполняться
alert("Variable z is defined.");
}
</script>