web-dev-qa-db-fra.com

Impossible de lire la propriété 'longueur' de null (javascript)

En essayant de déboguer, je reçois l’erreur «longueur» nulle avec cette ligne. Il est écrit exactement comme le livre l’a recommandé, alors je ne comprends pas pourquoi cela me donne l’erreur? Merci, =)

if (capital.length < 1) {

(voici le code complet tel que demandé .. 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> 
13
JBSAMOM

Le test approprié est:

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

Cela garantit que capital est always non non, lorsque vous effectuez le contrôle de longueur.

De plus, comme le suggèrent les commentaires, capital est null car vous ne l'initialisez jamais.

38
Hunter McMillen
if (capital.touched && capital != undefined && capital.length < 1 ) { 
//capital does exists
}
2
Naramsim

À partir du code que vous avez fourni, ne connaissant pas le langage dans lequel vous programmez. La variable capital est null. Lorsque vous essayez de lire la longueur de la propriété, le système ne peut pas le faire car il essaie de déférencer une variable nulle. Vous devez définir capital.

1
secretformula

J'ai essayé ceci:

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