Der Operator »in« in JavaScript
Der Operator »in« erlaubt es auszudrücken, daß ein Name in einem Verzeichnis eingetragen ist.
Einführende Beispiele
- Auswertung
"Math" in this
true
"Infinity" in this
true
"Infinity" in Math
false
"PI" in Math
true
"Pi" in Math
false
Die lexikalische Einheit »in«
Der Operator »in« besteht aus einer einzigen lexikalischen Einheit »in«, die aus dem Buchstaben »i« und dem Buchstaben »n« gebildet ist.
Die Syntax von »in«
Der Operator »in« ist ein binärer Infixoperator, wie beispielsweise auch »+«.
- Neue, erweiterte Syntax
Ausdruck
.------------------.
---.----------------->| Primaerausdruck |-------------------------------.---->
| '------------------' ^
| .------------------. |
'----------------->| Eintragsausdruck |-------------------------------'
| '------------------' |
| .-. .------------------. |
'-------->( - )--->| Ausdruck |-------------------------------'
| '-' '------------------' |
| .-. .------------------. |
'-------->( + )--->| Ausdruck |-------------------------------'
| '-' '------------------' |
| .------. .------------------. |
'--->( typeof )--->| Ausdruck |-------------------------------'
| '------' '------------------' |
| .------------------. .---. .----------. |
'----------------->| Ausdruck |--->( * )--->| Ausdruck |----'
| '------------------' '---' '----------' |
| .------------------. .---. .----------. |
'----------------->| Ausdruck |--->( / )--->| Ausdruck |----'
| '------------------' '---' '----------' |
| .------------------. .---. .----------. |
'----------------->| Ausdruck |--->( + )--->| Ausdruck |----'
| '------------------' '---' '----------' |
| .------------------. .---. .----------. |
'----------------->| Ausdruck |--->( - )--->| Ausdruck |----'
| '------------------' '---' '----------' |
| .------------------. .---. .----------. |
'----------------->| Ausdruck |--->( in )--->| Ausdruck |----'
| '------------------' '---' '----------' |
| .------------------. .---. .----------. |
'----------------->| Ausdruck |--->( < )--->| Ausdruck |----'
| '------------------' '---' '----------' |
| .------------------. .---. .----------. |
'----------------->| Ausdruck |--->( === )--->| Ausdruck |----'
| '------------------' '---' '----------' |
| .------------------. .---. .----------. |
'----------------->| Ausdruck |--->( !== )--->| Ausdruck |----'
'------------------' '---' '----------'- Syntax (vereinfacht)
Eintragsausdruck
.------------------.
--->| Primaerausdruck |--->
'------------------'Eintragsausdruck
.------------------. .-. .----------------.
--->| Eintragsausdruck |-->( . )--->| Bezeichnername |--->
'------------------' '-' '----------------'Primaerausdruck
.----.
---.-------------->( this )--------------.--->
| '----' ^
| .------------. |
'----------->| Bezeichner |-----------'
| '------------' |
| .---------. |
'------------>| Literal |-------------'
| '---------' |
| .-. .----------. .-. |
'--->( ( )--->| Ausdruck |--->( ) )---'
'-' '----------' '-'
Prioritäten
Der Operator »in« hat eine schwächere Priorität als die meisten bisher behandelten Operatoren, außer »===«.
- Eigenschaften von Operatoren
A P A (A = Aritaet, P = Position [Zirkumfix, Praefix, Infix], A = Assoziativitaet)
() 1 Z Eingeklammerter Ausdruck
+ - typeof 1 P Unaere vorangestellte Operatoren (Vorzeichen)
* / 2 I L "Punktrechnung": Multiplikation, Division
+ - 2 I L "Strichrechnung": Addition, Subtraktion
in 2 I L Enthaltensein
< 2 I L Kleiner
=== !== 2 I L Gleichheit, Ungleichheit
Die Semantik von »in«
Wenn der Wert des rechten Operanden ein Verzeichnis ist, und es einen Eintrag mit dem Namen des in eine Zeichenfolge umgewandelten linken Operators (als Schlüssel) in jenem Verzeichnis gibt, dann ergibt dieser Operator »true«, und sonst »false«.