2016-03-23 14 views
0

In Javascript vergleicht === Typ sowie Wert, wobei == nur Wert vergleicht. Gibt es im folgenden Beispiel einen Vorteil der Verwendung von === über ==?Vorteile von "string" === "string" mit typeof

function roll(sides){ 
    if (typeof sides === "undefined") { 
     sides = 6; 
    } 
    var result = Math.random() ; 
    result = result * sides ; 
    result = Math.floor(result) ; 
    return result ; 
}; 

Nach der typeof Dokumentation wird es immer nur einen String zurück. Dies führt zu der Annahme, dass die Verwendung von === in dieser Situation keine Vorteile bietet.

Ich stelle mir vor wer auch immer schrieb das Tutorial, ich benutze === aus Gewohnheit?

+0

Beantwortet durch CodeCasters Kommentarlink. [Was ist der Grund zu verwenden === anstelle von == mit typeof in Javascript?] (Http://stackoverflow.com/questions/3804005/whats-the-reason-to-use-instead-of-type-of.mit.typeof -in-javascript) – dyllandry

+0

'==' vergleicht auch den Typ. So reagieren sie, wenn die Typen nicht übereinstimmen, wodurch sie sich unterscheiden. –

Antwort

1

In einigen Fällen kann === Ihnen einen kleinen (normalerweise vernachlässigbaren) Leistungsvorteil gegenüber == geben.

Es ist auch sicherer zu verwenden ===, genau weil es auch testet, wenn Typ identisch ist.

Betrachten wir zum Beispiel diese:

  • TRUE === 1 und FALSE === 0 beide sind FALSE
  • TRUE == 1 und FALSE == 0 beide sind TRUE.

In den meisten Fällen möchten Sie das erstere und nicht das letztere Verhalten.

+0

Wenn die Typen übereinstimmen, sollte kein Leistungsunterschied auftreten. –

+0

@LyeFish: Ich würde gerne einige Benchmarks dafür sehen :-) –

+0

Schauen Sie sich einfach die Algorithmen an, die sie verwenden. Wenn die Typen übereinstimmen, sind die Algorithmen identisch. Natürlich kann es aufgrund bestimmter Optimierungen immer zu Browser-Unregelmäßigkeiten kommen, aber das kann in beide Richtungen funktionieren. –