Okt 2008

Spezielle Operatoren und Vergleichsoperatoren

 
 

Vergleichsoperatoren vergleichen zwei Werte, Variablen oder Anweisungen. Spezielle Operatoren versuchen, überflüssigen Code zu sparen.

Vergleichs-Operatoren

Operator Beschreibung
Gleich =
Nicht Gleich !=
Strenges Gleich ===
Strenges nicht Gleich !==
Größer als >
Kleiner als <
Größer oder Gleich >=
Kleiner oder Gleich <=
Gleich

== gibt true zurück, wenn beide Werte gleich sind.

var x = 17;
var y = 17;
if (x == y) // gibt true zuück

Liest sich: Wenn x gleich y ist …

Nicht gleich

!= gibt true zurück, wenn die beiden Werte nicht gleich sind.

var x = 17;
var y = 23;
if (x != y) // gibt true zurück

Liest sich: Wenn x nicht gleich y ist …

Strenges Gleich oder identisch

=== Gibt true zurück, wenn die beiden Werte gleich und vom selben Datentyp sind (seit JavaScript 1.5)

var x = 17;
var y = "17";
if (x === y) // gibt false zuück

Liest sich: Wenn x identisch mit y ist, also auch vom selben Datentyp …

Strenges Nicht Gleich

!== gibt true zurück, wenn die beiden Werte nicht gleich oder nicht vom selben Datentyp sind (Seit JavaScript 1.5)

var x = 17;
var y = 17;
if (x !== y) // gibt false zurück, denn beide Werte gleich und vom selben Datentyp sind

Liest sich: Wenn x nicht identisch mit y und nicht vom selben Datentyp …

Größer als

> Gibt true zurück, wenn der Wert auf der linken Seite größer als der Wert auf der rechten Seite ist

var x = 27;
var y = 23;
if (x > y) // true, denn 27 ist größer als 23

Liest sich: Wenn x größer als y ist …

Kleiner als

< Gibt true zurück, wenn der Wert auf der linken Seite kleiner als der Wert auf der rechten Seite ist.

var x = 700;
var y = 2000;
if (x < y) // true, denn 700 ist kleiner als 2000

Liest sich: Wenn x kleiner als y ist …

Größer Gleich

>= gibt true zurück, wenn der Wert auf der linken Seite größer oder gleich dem Wert auf der rechten Seite ist

var x = 400;
var y = 400;
if (x >= y) // true, denn 400 ist größer oder gleich 400

Liest sich: Wenn x größer oder gleich y ist …

Kleiner Gleich

<= gibt true zurück, wenn der Wert auf der linken Seite kleiner oder gleich dem Wert auf der rechten Seite ist.

var x = 100;
var y = 200;
if (x <= y) // false, denn 200 ist nicht kleiner oder gleich 100

Liest sich: Wenn x kleiner oder gleich y ist …

Bedingter Operator

Operator Beschreibung
?: "?:" (auch »conditional« oder »bedingter« Operator) ist eine Kurzschrift für die Konstruktion einer Evaluierung und führt zwei verschiedene Zuweisungen abhängig vom Ergebnis durch.
typeof Testet den Datentyp seines Operanden, z.B. ob eine Variable ein String, eine Zahl oder undefiniert ist.
instanceof Gibt einen Boole'schen Wert zurück, der angibt, ob der linke Operand vom gleichen Typ ist wie der rechte Operand.
delete Löscht ein selbstgemachtes Objekt, Eigenschaft, Methode oder Array-Element
in Prüft, ob ein Element in einem Objekt enthalten ist
new Erzeugt eine Instanz von einem Objekt
void Evaluiert einen Ausdruck, ohne das Ergebnis zurückzugeben

Der bedingte Operator (conditional operator oder auch Ternary-Operator) ist der einzige Operator in Javascript, der mit drei Operanden arbeitet und ersetzt eine einfach if-Abfrage. Der erste Operand ist die Bedingung, der zweite Operand wird zurückgegeben, wenn die Bedinung true liefert und der dritte Operand wird zurückgegeben, wen die Bedingung false liefert.

(Bedingung) ? Ausdruck : Ausdruck;

Im Grunde genommen ist der bedingte Operator also eine verkürzte if-then-else-Anweisung, die den Code kompakt hält:

var status = (alter >= 18) ? "Erwachsen" : "Jungendlicher";

//entspricht
var status = "";
if (alter >= 18) {
   status = "Erwachsen";
} else {
   status = "Jugendlicher";
}
y = -1
x = (y < 0) ? 5 : 10;  // x enthält "5"  

Der bedingte Operator eignet sich wunderbar, kleine Browserdifferenzen in einer Anweisung zu normalisieren. Hier normalisiert der bedingte Operator den Zugriff auf das Ereignis, das zum Aufruf der Funktion führte – das Ereignis ist entweder der Parameter evt der aufgerufenen Funktion (Standard) oder eine Eigenschaft des window-Objekts (Internet Explorer).

function myFunc(evt) {
   evt = (evt) ? evt : (window.event);
   // Verarbeitung des Ereignisses
}

Der typeof-Operator

Der typeof-Operator gibt einen String zurück, der den Typ des Operanden identifiziert. Der (nicht entwickelte) operand kann ein String, eine Variable, ein Schlüsselwort oder ein Objekt sein, deren Typ festgestellt werden soll. Der typeof-Operator kann z.B. prüfen, ob eine Variable definiert wurde: Wenn kein Wert mit einer Variablen verbunden werden kann, liefert der typeof-Operator immer undefined.

Der typeof-Operator kann auf zweierlei Weise aufgerufen werden:

1. typeof operand
2. typeof (operand)

Die Klammern sind optional.

var fn    = new Function("…")
var form  = "rund"; 
var size  = 1;
var today = new Date();

Der typeof-Operator gibt die folgenden Ergebnisse zurück:

typeof fn            function
typeof form          string
typeof size          number
typeof today         object
typeof dontExist     undefined
Schlüsselwörter true und null
typeof true          boolean
typeof null          object
Zahlen oder Strings
typeof 62            number
typeof 'Hallo Welt'  string
Werte von Eigenschaften
typeof document.lastModified  string
typeof window.length          number
typeof Math.LN2               number
Methoden und Funktionen
typeof blur          function
typeof eval          function
typeof parseInt      function
typeof form.split    function
Vordefinierte Objekte
typeof Date          function
typeof Function      function
typeof Math          function
typeof Option        function
typeof String        function

instanceof-Operator

Der instanceof-Operator gibt true zurück, wenn das angegebene Objekt vom angegebenen Typ ist.

objectName instanceof objectType

wobei objectName der Name des Objekts ist, das mit dem objectType verglichen wird und objectType ein Objekttyp wie Date oder Array.

instanceof wird zur Laufzeit benutzt, um den Typ eines Objekts festzustellen.

theDay = new Date(1995, 12, 17)
if (theDay instanceof Date) {
   // Anweisungen
}

var today=new Date()
alert(today instanceof Number) // false, da  today keine Zahl ist.

Komma-Operator

Der Komma-Operator entwickelt zwei Operanden und gibt den Wert des zweiten Operanden zurück. Der Operator wird bevorzugt in for-Anweisungen eingesetzt, wenn mehrere Variablen bei dem Schleifendurchlauf ein Update erfahren sollen.

for (var i=0, j=9; i<=9; i++, j--) {
   myVar = a[i][j] + wert;
}

delete-Operator

Der delete-Operator löscht ein Objekt, die Eigenschaft eines Objekts oder ein Element an einem bestimmten Index in einem Array.

delete object;
delete object.eigenschaft; 
delete object[index];

Der delete-Operator löscht implizit, nicht aber durch das Schlüsswlwort var deklarierte Variablen. Wenn die Operation gelingt, wird die Eigenschaft oder das Element auf undefined gesetzt. Der delete-Operator gibt true zurück, wenn die Operation möglich ist, ansonsten gibt der Operator false zurück.

x       = 42; 
var y   = 43; 
myObj   = new Number();
myObj.h = 4;      // erzeugt die Eigenschaft h
delete x;         //  true  (darf gelöscht werden, da implizit deklariert)
delete y;         //  false (darf nicht gelöscht werden, da mit var deklariert)
delete Math.PI;   //  false (vordefinierte Eigenschaften dürfen nicht gelöscht werden)
delete myObj.h;   //  true  (Benutzerdefinierte Eigenschaften dürfen gelöscht werden)
delete myObj;     //  true  (kann gelöscht werden, wenn implizit deklariert)
var mycar = new Object();
mycar.color = "red";
delete mycar.color; // löscht die Eigenschaft "color"
Array-Elemente löschen

Wenn ein Array-Element gelöscht wird, ist die Länge des Arrays davon nicht betroffen. Wird das Array-Element mit dem delete-Operator gelöscht, liegt das Element nicht länger im Array.

colors = new Array("red", "green", "blue", "yellow", "purple");
delete colors[3];
if (3 in colors) {
   // wird nicht ausgeführt
}

Wenn das Array-Element weiter existieren, aber keinen definierten Wert haben soll, wird das Schlüsselwort undefined anstelle des delete-Operators benutzt.

colors    = new Array("red", "green", "blue", "yellow", "purple");
colors[3] = undefined;
if (3 in colors) {
   // wird ausgeführt
}

in-Operator

Der in-Operator gibt true zurück, wenn eine angegebene Eigenschaft eines Objekt exisitert.

property in objectName

wobei property ein String oder ein numerischer Ausdruck ist, der ein Namen einer Eigenschaft oder der Index eines Arrays ist.

new-Operator

Der new-Operator erzeugt eine neue Instanz eines Objekts – entweder eines benutzerdefinierten Objekts oder von einem vordefinierten Objekt (Array, Boolean, Date, Function, Image, Number, Object, Option, RegExp oder String), das eine Konstruktor-Funktion hat.

objectName = new objectType ( param1 [,param2] ...[,paramN] )

Am Rande: Neben der Erzeugung von Objekten durch eine Konstruktor-Funktion können Objekte auch durch eine Objekt-Initialisierung erzeugt werden (was manchmal auch als die Erzeugung von Objekten mit literaler Notation bezeichnet wird). Letzteres ist konsistent mit der Terminologie von C++. (objectName = (eigenschaft_1: wert1, eigenschaft_2: wert2, ... eigenschaftn: wert_n))

this

Das Schlüsselwort this verweist auf das aktuelle Objekt – i.d.R. auf das aufrufende Objekt in einer Methode.

this[.propertyName]

void

Der voidOperator wird auf folgende Weisen benutzt:

1. void (ausdruck)
2. void ausdruck

Der void-Operator spezifiziert einen Ausdruck, der evaluiert wird, ohne einen Wert zurückzugeben. Die Klammern um den Ausdruck sind optional, gelten aber als guter Stil.

Special Operators bei Mozilla Developer

   


Copyright © 2000 - 2010 Media Engineering Alle Rechte vorbehalten
Design + Programmierung Media Engineering U. Häßler 47506 Neukirchen-Vluyn • Impressum und Nutzungsbestimmungen