2010-12-08 3 views

ответ

6

Используйте typeof оператор:

if(typeof objCR == "undefined") 
    alert("objCR is not defined"); 
+0

Поздравляет на быстром редактировании ..;) – 2010-12-08 12:14:27

+0

..yes, били меня к этому, как хорошо! – 2010-12-08 12:15:46

+0

Это не полностью отвечает на вопрос, поскольку я его понимаю, потому что `objCR` может быть легко объявлен в текущей области, но все еще не определен. Например, «var objCR;» сделает это. – 2010-12-09 12:46:33

1
if (typeof objCR=="undefined"){ 
    alert("objCR is undefined"); 
} else { 
    alert("objCR is defined"); 
}; 

(!objCR) возвращает истину, если objCR является булево равно false

+0

+1 за последний комментарий, собирался это сказать. :) – 2010-12-08 12:13:22

0

Я хотел бы предложить очевидное:

if (objCR==undefined) ... 
0

Я всегда это должно быть безопасным:

if(typeof objCR == "undefined" || objCR == null) 
    alert("object is not defined or null"); 
2

Как уже отмечалось другими, используя typeof чек поможет вам некоторые пути туда:

if (typeof objCR == "undefined") { 
    alert("objCR is undefined"); 
} 

Однако, это не будет различать objCR существующих и будучи неопределенным (как это было бы если он был объявлен, но не назначен, например используя var objCR;) и objCR, которые никогда не были объявлены нигде в цепочке видимости, и я думаю, это то, что вы на самом деле хотите. Если вы хотите быть уверены, что ни objCR переменные не было даже объявлено, вы могли бы использовать try/catch следующим образом:

try { 
    objCR; // ReferenceError is thrown if objCR is undeclared 
} catch (ex) { 
    alert("objCR has not been declared"); 
} 
Смежные вопросы