Невозможно прочитать длину свойства 'null (javascript)

При попытке отладки я получаю нулевую ошибку "length" с этой строкой. Это написано так же, как и книга, поэтому я не понимаю, почему она дает мне ошибку? Спасибо, =)

if (capital.length < 1) {

(вот полный код в соответствии с запросом.. SORRY)

<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> 

Ответ 1

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

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

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

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

Ответ 2

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

Ответ 3

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

Ответ 4

Я пробовал это:

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

Ответ 5

Это тоже работает - оцените, определен ли капитал. Если нет, это означает, что капитал не определен или равен нулю (или другому значению, которое оценивается как ложное в js)

if (capital && capital.length < 1) {do your stuff}