Du bist hier: Startseite > WebWissen > Javascript > Javascript Vergleichsoperatoren
Folge mir bei Twitter...

und bleibe auf dem Laufenden, was die Themen SEO und Webentwicklung angeht!

Mittwoch, 24. Juni 2009 um 20:13 Uhr

Javascript: Vergleichen wir Äpfel mit Birnen?

Wer schon einmal mit Javascript entwickelt hat, kennt das hier: == und === . Doch was ist der Unterschied zwischen diesen Vergleichsoperatoren? Und welche Variante soll man verwenden? Dieser Beitrag gibt die Antworten.

Ok, für den Titel müsste ich eigentlich schon fünf Euro ins Phrasenschwein werfen, aber es ist doch so: Es gibt zwei unterschiedliche Varianten des Vergleichsoperators - die zwei-Zeichen-Variante und die drei-Zeichen-Variante.

Beide funktionieren, aber unterschiedlich.

Während die zwei-Zeichen-Variante nur den Wert von zwei Variablen vergleicht, berücksichtigt die drei-Zeichen-Variante auch zusätzlich den Datentyp. Das klingt kompliziert, ist es aber nicht, wenn man folgendes Beispiel betrachtet:

var mein_string    = "5";
var meine_zahl    = 5;

if(mein_string == meine_zahl)
{
    alert('Ja');
}
else
{
    alert('nein');
}

if(mein_string === meine_zahl)
{
    alert('ja');
}
else
{
    alert('nein');
} 

Wir haben hier zwei Variablen. Eine ist ein String und die andere eine Number. Die Datentypen sind also unterschiedlich. Der Vergleich in Zeile 4 ergibt true, weil bei der zwei-Zeichen-Variante der Datentyp nicht mit verglichen wird.

Dagegen ergibt der Vergleich in Zeile 13 false, weil hier der Datentyp eben auch mit verglichen wird.

Die Ausgabe per alert() lautet deshalt "Ja" und "nein".

Das Ganze gilt natürlich nicht nur für den Gleichheits-Operator == und === sondern auch für den Ungleichheits-Operator != und !=== .

OK - Aber welche Variante soll ich jetzt nehmen?

Erfahrene Javascript-Entwickler raten dazu immer die drei-Zeichen-Variante zu wählen, weil hier ein "richtiger" Vergleich stattfindet.

Ich denke allerdings, dass nicht viel gegen die zwei-Zeichen-Variante spricht, weil man damit prinzipiell toleranter unterwegs ist. Allerdings verleitet das auch zum schlampigen programmieren. Ich muss also meinen Code nicht sauber halten, weil die Vergleiche eh tolerant mit meinen Variablen umgehen. Das ist tendenziell schlecht.

 

Kommentare

Name *
Code   
ChronoComments by Joomla Professional Solutions
Kommentar abgeben

Tags

!=  !==  ===  Gleich  Javascript ==  Ungleich  Vergleichsoperatoren  

Tweets

Social Bookmarks

Über den Autor

Mein Name ist Axel Scheuering. Während meines Studiums (Wirtschaftsinformatik) habe ich meine Brötchen als Webentwickler verdient. Mmhh lecker Brötchen. Seit ich mit dem Studium fertig bin, arbeite ich hauptberuflich im Bereich Suchmaschinenoptimierung.

2009 habe ich bei der Google Online Marketing Challenge teilgenommen und mich zusammen mit meinem Team gegen über 2.000 Teams aus der gazen Welt durchgesetzt. Wir haben unter den "Final 15" weltweit den 2. Platz erreicht und dafür einen Marketingpreis erhalten :)

Diese Site betreibe ich nicht mehr aktiv weiter. Mein neues Blog findest du unter Methode-Web.de

Inhalte dort sind Webentwicklung, Suchmaschinenoptimierung, das Web allgemein und Literaturtipps.