Как проверить установлена ли переменная в JavaScript?

2010-04-28

Чтобы избежать возможных ошибок в JavaScript — иногда нужно ставить такие проверки.

К сожалению в JavaScript нету такой замечательной функции как isset() в PHP. Но всё не так плохо.

Проверить существует ли «глобальная» переменная в JavaScript можно следующим образом:

if(typeof myVar == "undefined") {
alert("Переменная myVar неопределена");
}

Обратите внимание, что так было бы некоректно:

if(myVar == undefined) {
alert("Переменная myVar неопределена");
}

Слово «глобальная» в кавычках, потому, что переменная не является глобальной, а является просто свойством объекта window, который по иерархии выше остальных обьектов.
По-этому если нам нужно проверить имеет ли некоторый объект некоторое свойство — нам нужно написать следующим образом:

var myObject = {};
if(typeof myObject.myProperty == "undefined") {
alert("У объекта myObject нету свойства myProperty");
}

Похожим способом можно проверять все ли параметры переданы некоторой функции, и при необходимости задавать им некоторые значения по умолчанию:

var showMyName = function(myName) {
if(typeof myName == "undefined") {
var myName ="Незнакомец";
}
alert(myName);
};

Если вызвать функцию showMyName() без параметров, то мы увидим сообщение «Незнакомец» вместо javascript-ошибки.



Добавить комментарий