2014-01-02 5 views
5

У меня есть файл JavaScript с именем index.js. Этот файл javascript предоставляет процедурный код, связанный с index.html. Мой файл index.html довольно простой. Это выглядит следующим образом:JavaScript - Проверьте, существует ли переменная

<!DOCTYPE html> 
<html> 
    <body> 
     <script type="text/javascript" src="index.js"></script> 
     <script type="text/javascript"> 
@if (ViewBag.IsGood()) { 
    <text> 
      INFORMATION = { version: '<%= version%>', timestamp: '<%= timestamp%>' }; 
    </text> 
} 
      runInit(); 
     </script> 
    </body> 
</html> 

В моем index.html.js файл, у меня есть следующие

function runInit() { 
    if (INFORMATION === undefined) { 
    INFORMATION = { version: 'Unknown' }; 
    } 

    // Keep going 
} 

Как вы можете видеть, иногда информация получает набор. Иногда это не так. Все работает, когда установлена ​​ИНФОРМАЦИЯ. Когда он не установлен, появляется сообщение об ошибке «ReferenceError: Не удается найти переменную: INFORMATION». Я смущен этим, потому что я думаю, что проверяю, правильно ли свойство существует. Видимо, я нет.

В JavaScript, как я могу гарантировать, что существует переменная? Это мое большое беспокойство. Я не хочу менять свой код. Я действительно хочу это сделать. Я чувствую, что делаю это правильно. Тем не менее, я все еще получаю сообщение об ошибке.

Спасибо.

+0

Где вы включаете 'index.html.js'? Вы уверены, что 'src =" index.html "в вашем HTML не ошибается? – ComFreek

+0

'if (typeof (INFORMATION) == 'undefined')' –

+0

@ComFreek - Исправлено. Сожалею. – user2871401

ответ

9

Вы можете использовать typeof operator:

так как этот

typeof foo; //returns "undefined"; 

так, чтобы проверить, если что-то не определено

if(typeof INFORMATION==="undefined"){ 
    INFORMATION={version:"Unknown"}; 
} 
Смежные вопросы