Prüfen, ob eine Variable in JavaScript eine Zeichenkette ist
Wie kann ich feststellen, ob eine Variable in JavaScript eine Zeichenkette oder etwas anderes ist?
1539
3
Wie kann ich feststellen, ob eine Variable in JavaScript eine Zeichenkette oder etwas anderes ist?
Das ist es, was bei mir funktioniert:
Sie können den Operator
typeof
verwenden:Beispiel von dieser Webseite. (Das Beispiel wurde allerdings leicht verändert).
Dies funktioniert nicht wie erwartet im Fall von Strings, die mit
new String()
erstellt wurden, aber dies wird selten verwendet und ist nicht zu empfehlen. Wie Sie damit umgehen können, erfahren Sie in den anderen Antworten, falls Sie dies wünschen.Der beste Weg:
Jedes dieser Objekte wurde mit der entsprechenden Klassenfunktion konstruiert, wie "new Object()" usw.
Außerdem: Duck-Typing: "Wenn es wie eine Ente aussieht, wie eine Ente läuft und wie eine Ente riecht - muss es ein Array sein" Das heißt, überprüfen Sie seine Eigenschaften.
Hoffentlich hilft das.
Edit; 12/05/2016
Denken Sie daran, dass Sie immer auch Kombinationen von Ansätzen verwenden können. Hier ist ein Beispiel für die Verwendung einer inline map von Aktionen mit typeof:
Hier's ein mehr 'real world' Beispiel für die Verwendung von inline-maps:
Diese Funktion würde [ custom ] "type-casting" -- eher "type-/-value-mapping" -- verwenden, um herauszufinden, ob eine Variable tatsächlich "existiert". Jetzt können Sie das unangenehme Haar zwischen
null
&0
spalten!In vielen Fällen ist der Typ egal. Eine weitere Möglichkeit, die Typisierung zu umgehen, ist die Kombination von Duck-Type-Sets:
Sowohl
Number.prototype
als auchString.prototype
haben eine.toString() Methode
. Du hast nur sichergestellt, dass das String-Äquivalent der Zahl gleich ist, und dann hast du sichergestellt, dass du es alsNumber
an diehttp
-Funktion übergeben hast. Mit anderen Worten, wir haben uns nicht einmal darum gekümmert, was der Typ ist.Ich hoffe, das gibt Ihnen mehr Stoff zum Arbeiten :)