Проверить, что переменная или свойство в JavaScript undefined

Лучше всего сделать это так:

if (typeof something === "undefined")
alert("something undefined");

, где всесто something может быть не только переменная, а и свойство (например, something.prop).

Важно понимать. В JavaScript null является объектом. Для других переменных, которые не заданы, есть undefined. DOM возвращает null почти во всех случаях, когда не может найти какую-то структуру в документе, а undefined — это значение переменной, которая не определена.

Во-вторых, нет прямого соответствия между ними. Если Вы знаете, что переменная существует, и хотите проверить, является ли она null, сделайте так:

if (null === yourvar) //  (Надо знать, что переменная объявлена!)

Чтобы проверить, задана ли переменная, сделайте так:

if (typeof yourvar != ''undefined'') // Любая область
if (window[''varname''] != undefined) // Глобальная область видимости
if (window[''varname''] != void 0) // Для старых браузеров

Если Вы знаете, что переменная была объявлена (через var), но хотите проверить, присвоено ли ей значение, сделайте так:

if (undefined != yourvar) // (Надо знать, что переменная объявлена!)
if (void 0 != yourvar) // для старых браузеров

Если Вы хотите проверить, что у какого-то объекта присутствует свойство, независимо от того, было ли оно задано или нет:

if (''membername'' in objectname) // С наследованием
if (objectname.hasOwnProperty(''membername'')) // Без наследования

Проверить, вернёт ли переменная true:

if(variablename)

З.Ы.

var TestVar = null;
alert(TestVar); // покажет null
alert(typeof TestVar); // покажет object
Похожие вопросы
Добавить ответ
Для оформления сообщений Вы можете использовать следующие тэги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Нажимая кнопку «Отправить», я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности этого сайта.