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

Вопрос

Какой способ лучше использовать, чтобы убедиться, что какое-то свойство или переменная в JavaScript является undefined?

Ответ №1

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

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

No responses yet

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