2016-11-11 3 views
2

Dieses ist ein sehr grundlegendes Problem, das ich habe, da ich zu javascript neu bin, aber ich kann mich nicht vorwärts bewegen, bis ich dieses kleine Ding verstehe.verstehendes Javascript typeof

ich diese Funktion haben ..

function stringOrNot() { 
    var input = prompt('Input something here'); 

    if (typeof input != 'string') { 
    alert("That is not a string!"); 

    } else { 
    alert("That is a string!"); 
    } 
} 

stringOrNot(); 

Frage
Was muss ich eingeben müssen um die Warnung zu bekommen: „Das ist kein String ist“?
Welche Art von Eingaben sind keine Zeichenfolgen?

Was auch immer ich eingabe ich bekomme 'Das ist eine Zeichenfolge!' ist zurückgekommen.

auch diese Funktion ...

function stringOrNot() { 
    var input = prompt('Input something here'); 

    if (typeof input != 'string') { 
    alert("That is not a string!"); 
    } else (typeof input == 'string'){ 
    alert("That is a string!"); 
    } 
} 

stringOrNot(); 

dies eine Konsole Fehler zurückgibt

"SyntaxError: Unexpected token '{'. Parse error."

Warum kann ich nicht, wenn und sonst conditionals so schreiben?

Bitte könnte jemand die Antworten auf diese kleinen Probleme erklären, damit ich weitermachen kann! danke im vorraus und verzeih mir, ich bin neu in der codierung.

::)

Hallo wieder .. UPDATE und eine andere Frage.

Der Grund, warum ich die erste Frage hatte wegen einer codeschool.com Funktion Übung ist, die als diese abgeschlossen ...

Funktion counte() {var Satz prompt = ("Welcher Begriff würden Sie untersuchen möchten ? ");

if (typeof(phrase) != "string"){ 
    alert("This is not a valid entry!"); 
    return false; 
} else { 

    var eCount = 0; 
    for (var i = 0; i < phrase.length; i++){ 
     if (phrase.charAt(i) === 'e' || phrase.charAt(i) === 'E') 
     eCount++; 
     } 
    } 

     alert(eCount); 
     return true; 

}

counte()

Also .. Ich wollte testen, was nicht ein String ist, wollte ich die Warnung bekommen "Dies ist kein gültiger Eintrag!".

Aber, wenn eine Eingabeaufforderung nur eine Zeichenfolge zurückgibt, warum ist das < < if (typeof (Ausdruck)! = "Zeichenfolge") >> in der Funktion enthalten?

+1

Es wird immer eine Zeichenfolge zurückgeben, da dies die Eingabeaufforderung zurückgibt. Und für Ihre zweite Frage ist es '} sonst wenn (typeof input ==' .. – Keith

+0

keith, danke! – James

Antwort

1

Für stringOrNot() Sie haben eine Bedingung in Ihrem else-Anweisung. Wenn Sie eine Bedingung haben möchten, verwenden Sie andernfalls if() {}.

function stringOrNot() { 

var input = prompt('Input something here'); 

if (typeof input != 'string') { 
    alert("That is not a string!"); 

    } else if (typeof input == 'string'){ 
    alert("That is a string!"); 
    } 
} 

prüfen unten für weitere Informationen

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/if...else

für die Frage EDITED 2:

Sie umfassen die Prüfung für die Aufforderung, weil die es auch einen Nullwert zurückgeben kann (wenn der Benutzer klickt auf Beenden). Wenn der Benutzer auf Abbrechen klickt, ist der "Dies ist kein gültiger Eintrag!" wird auftauchen.

+0

ich habe mein Problem herausgefunden. Ich benutze Safari. In Safari drücke Esc oder annulliere die Alarme '0'. In Chrome - 'Dies ist kein gültiger Eintrag!' Wird auf esc oder Abbrechen informiert. Weißt du, wie ich Safari bekommen kann um damit richtig zu arbeiten? Danke – James

+0

Sie könnten auch eine Prüfung hinzufügen, um "Dies ist kein gültiger Eintrag" zurückzugeben, wenn eCount 0 ist. – jhack

3

what do i need to input to get the alert "That is not a string"? which kind of inputs are not strings?

Das Ergebnis der prompt ist immer ein string. Es gibt also keine Eingabe, die Sie an die prompt liefern könnten, die zu einem anderen Typ führen könnte. Die prompt gibt immer eine Zeichenfolge zurück.

Für einen formaleren Ansatz schauen Sie bitte here.

+0

@James Sie sind willkommen! – Christos

+0

Danke Christos, ich werde MDN jetzt häufiger verweisen. Bitte können Sie meine weitere Frage beantworten ? – James

1

what do i need to input to get the alert "That is not a string"? which kind of inputs are not strings?

Dinge, die keine Strings sind, umfassen Zahlen, Objekte und booleans.

Der Rückgabewert der prompt Funktion wird immer eine Zeichenfolge sein. Der Zweck der prompt-Funktion besteht darin, eine vom Benutzer eingegebene Zeichenfolge abzurufen.

if übernimmt eine Bedingung. else ist, was passiert, wenn die Bedingung nicht erfüllt ist.

Sie liefern eine Bedingung an else, die keinen Sinn ergibt.

können Sie jedoch eine andere if Anweisung:

} else if (something) {