2016-05-28 9 views
-2

Welche der folgenden Zeilen ist richtig? ...JavaScript === vs == für Typ-Überprüfung

if (typeof value == 'boolean') { return value; } 

... oder ...

if (typeof value === 'boolean') { return value; } 

dachte ich die doppelte gleich Zeichen war eine Art von "weichen vergleichen", so dass die value Variable könnte entweder eine string oder formale Art sein. Ist das nicht so? Ich frage mich, weil JSHint sich über die erste Version beschwert hat. Ich habe es geändert, aber jetzt mache ich mir Sorgen, dass typeof keine Zeichenfolge zurückgeben wird.

+1

'typeof' immer konsistent sein. Wenn Sie Zweifel haben, lesen Sie die Dokumentation https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof – charlietfl

+1

Beide sind "korrekt", aber '===' wird im Allgemeinen bevorzugt, weil es fast ist immer das erwartete Verhalten. –

+0

Also, bedeutet das, dass es keine Typen in JS gibt? Wenn ja, warum würde 'typeof' einen String anstelle eines' type' zurückgeben. –

Antwort