in operator

Der in operator gibt true zur├╝ck, falls die gegebene Eigenschaft im gegebenen Objekt existiert.

Syntax

prop in object

Parameter

prop
Ein String oder Symbol welches einen Namen einer Eigenschaft oder einen Arrayindex (nicht Symbole werden in einen String konvertiert).
object
Objekt, bei welchem ├╝berpr├╝ft wird, ob eine Eigenschaft mit spezifiziertem Namen enthalten ist (oder in der Prototypenkette enthalten ist).

Beschreibung

Die folgenden Beispiele zeigen einige Verwendungen des Operators

// Arrays
var trees = ["redwood", "bay", "cedar", "oak", "maple"];
0 in trees        // gibt true zur├╝ck
3 in trees        // gibt true zur├╝ck
6 in trees        // gibt false zur├╝ck
"bay" in trees    // gibt false zur├╝ck (man muss den Index
                  // spezifizieren, nicht den Wert an dem Index)
"length" in trees // gibt true (length ist eine Eigenschaft von Array
Symbol.iterator in trees // gibt true zur├╝ck (Arrays sind iterable, funktioniert nur in ES2015+))

// Vordefinierte Objekte
"PI" in Math     //  gibt true zur├╝ck

// Eigene Objekte
var mycar = {make: "Honda", model: "Accord", year: 1998};
"make" in mycar  // gibt true zur├╝ck
"model" in mycar // gibt true zur├╝ck

Man muss auf der rechten Seite des in Operators ein Objekt benutzen. Zum Beispiel kann ein String, der durch einen Konstruktor erstellt wurde, benutzt werden, jedoch funktioniert kein Stringliteral.

var color1 = new String("green");
"length" in color1 // gibt true zur├╝ck

var color2 = "coral";
// erzeugt einen Fehler (color2 ist kein String Objekt)
"length" in color2

Einsatz von in mit gel├Âschten oder undefined Eigenschaften.

Wenn eine Eigenschaft mit dem delete Operator gel├Âscht wird, wird der in f├╝r diese Eigenschaft false zur├╝ckgeben.

var mycar = {make: "Honda", model: "Accord", year: 1998};
delete mycar.make;
"make" in mycar;  // gibt false zur├╝ck

var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
delete trees[3];
3 in trees; // gibt false zur├╝ck

Wenn eine Eigenschaft auf undefined gesetzt wird, aber nicht gel├Âscht wird, wird der in Operator true zur├╝ckgeben.

var mycar = {make: "Honda", model: "Accord", year: 1998};
mycar.make = undefined;
"make" in mycar;  // gibt true zur├╝ck
var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
trees[3] = undefined;
3 in trees; // gibt true zur├╝ck

Vererbte Eigenschaften

Der in Operator gibt true f├╝r Eigenschaften in der Prototype-Kette zur├╝ck.

"toString" in {}; // gibt true zur├╝ck

Spezifikationen

Browserkompatibilit├Ąt

BCD tables only load in the browser

Siehe auch