JBSAMOM
JBSAMOM

Reputation: 331

Cannot read property 'length' of null (javascript)

While trying to debug I am get the 'length' null error with this line. It is written just like the book instructed, so I don't understand why it is giving me the error? Thanks, =)

if (capital.length < 1) {

( here is the full code as requested.. 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> 

Upvotes: 29

Views: 203056

Answers (6)

Gopal Gautam
Gopal Gautam

Reputation: 39

Use Try cache

try{

//Your Code

} catch(err){

console.log(err)

}

Upvotes: 0

Kamil Naja
Kamil Naja

Reputation: 6692

This also works - evaluate, if capital is defined. If not, this means, that capital is undefined or null (or other value, that evaluates to false in js)

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

Upvotes: 4

Naramsim
Naramsim

Reputation: 8732

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

Upvotes: 1

Aldo Geovani
Aldo Geovani

Reputation: 3

I tried this:

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

Upvotes: 0

Hunter McMillen
Hunter McMillen

Reputation: 61512

The proper test is:

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

This ensures that capital is always non null, when you perform the length check.

Also, as the comments suggest, capital is null because you never initialize it.

Upvotes: 88

secretformula
secretformula

Reputation: 6432

From the code that you have provided, not knowing the language that you are programming in. The variable capital is null. When you are trying to read the property length, the system cant as it is trying to deference a null variable. You need to define capital.

Upvotes: 1

Related Questions