2016-03-23 2 views
0

gibt es einen Fehler im folgenden Code, wie es scheint. Kann den Fehler des Codes nicht finden. Der Rest des Programms wertet den Wert des Variablentyps returnValueFinal als null aus. Ich möchte while-Schleife, um den Benutzer zur Eingabe einer Zahl aufzufordern, und die while-Schleife soll als Sentinel-gesteuerte Schleife funktionieren. noch funktioniert nicht wie erwartet. Hier ist mein Code,JavaScript während (Sentinel kontrollierten Schleife) Fehler

while(typeof(returnValueFinal) === null) 
       { 
        prompt("Please enter a number"); 
        console.log("null value"); 
       } 

kann jemand den Fehler finden? Vielen Dank im Voraus

+1

'typeof (null) ===‚object'' Sie wollen, ist 'returnValueFinal == null (wird auch undefiniert) – Wainage

+0

Es wird in einigen Browsern falsch sein, wenn Sie nicht auch nach der Nullzeichenfolge suchen, bei anderen Gelegenheiten wird es nicht ausgeführt, weil der Browser sehen wird, dass er die Schleife nie beenden wird Sie aktualisieren den Wert von 'returnValueFinal' in keiner Weise, um zu sehen, dass er seinen Typ geändert hat. Wenn Sie keinen anderen Code haben, den Sie uns nicht zeigen, ist in diesem Fall, ignorieren Sie diesen Punkt, dies sind nur meine anfänglichen Gedanken, ohne mehr Code/Info, kann ich nicht genauer kommentieren. Browser zu Browser wird sich ändern, aber das ist die 2 wahrscheinlichsten Gründe, die nicht wie erwartet ausgeführt wird. – SkullDev

+0

Interessant. Welche Browser? – Wainage

Antwort

0

typeof gibt einen String

so typeof(returnValueFinal) === null false zurück, in der Tat, wenn returnValueFinal null Verwendung returnValueFinal === null

+0

Aber 'typeof ({}) === 'object'' – Wainage

+0

Nicht sicher, was Sie bei @Wainage bekommen, das wird zu' true' ausgewertet, weil '{}' * * ein Objekt ist., –

+0

I' Ich sage "null" ist nicht die einzige Sache, die diese Bedingung wahr machen wird. Wenn returnValueFinal = {}, wird (laut seinem Code) "null" angesagt – Wainage

Verwandte Themen