2013-03-31 4 views
7

При попытке отладки я получаю ошибку «length» с этой строкой. Это написано так же, как и книга, поэтому я не понимаю, почему она дает мне ошибку? Спасибо =)Невозможно прочитать свойство 'length' of null (javascript)

if (capital.length < 1) { 

(здесь полный код по запросу .. пардон)

<script type="text/javascript"> 
var capital = window.prompt("What is the capital of Missouri?","") 

if (capital.length < 1) { 
    document.getElementById("firstdiv").innerHTML="Sorry you don't feel like playing.<br /> The Capital of Missouri is Jefferson City."; 
} 
else { 
    if (!window.confirm("Is that your final answer?")){ return true; 

     document.getElementById("firstdiv").innerHTML = "The capital of Missouri is: <bold>" + capital + "</bold>, so says you."; 
    } 
    else{ 
     return false; 
    } 
} 
</script> 
+0

пост полный код пожалуйста – frickskit

+1

Какой язык это? JavaScript? –

+0

Потому что вы никогда не устанавливали 'capital'. – SLaks

ответ

23

Правильный тест:

if (capital != null && capital.length < 1) { 

Это гарантирует, что capital является всегда не нулевой, при выполнении проверки длины.

Также, как следует из комментариев, capital - это null, потому что вы никогда не инициализируете его.

+0

Мне очень жаль .. Да, это в JavaScript – JBSAMOM

+0

Done =) Извините, что – JBSAMOM

1

Из кода, который вы предоставили, не зная языка, что вы программирование в. Переменная capital имеет значение null. Когда вы пытаетесь прочитать длину свойства, система не может, поскольку она пытается почитать нулевую переменную. Вам необходимо определить capital.

2
if (capital != null && capital != undefined && capital.length < 1) { 
//capital does exists 
} 
0

Я попытался это:

if(capital !== null){ 
//Capital has something 
} 
Смежные вопросы