2013-03-31 13 views
7

Podczas próby debugowania otrzymuję błąd długości "długość" z tą linią. Napisane jest tak, jak polecono książkę, więc nie rozumiem, dlaczego daje mi błąd? Dzięki, =)Nie można odczytać właściwości "length" o wartości null (javascript)

if (capital.length < 1) { 

(Oto pełny kod na żądanie .. przepraszam)

<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

po pełny kod proszę – frickskit

+1

Co to za język? JavaScript? –

+0

Ponieważ nigdy nie ustawiłeś 'capital'. – SLaks

Odpowiedz

23

Właściwy test jest:

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

Gwarantuje to capital jest zawsze non null, podczas wykonywania sprawdzania długości.

Ponadto, jak sugerują komentarze, capital jest null, ponieważ nigdy go nie inicjalizujesz.

+0

Bardzo mi przykro ... Tak, jest w JavaScript – JBSAMOM

+0

Done =) sorry o tym – JBSAMOM

1

Z kodu, który podałeś, nie znając języka, że ​​jesteś programowanie w. Zmienna capital ma wartość null. Gdy próbujesz odczytać długość właściwości, system przechyla się, próbując ocenić wartość pustą. Musisz zdefiniować capital.

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

Próbowałem to:

if(capital !== null){ 
//Capital has something 
}