eine Zeile Javascript
Paul
- javascript
Moin, kann mir jemand die folgende Zeile(n) Javascript Code erklären? Was kommt bei selected raus?
var obj = new Obj({
...
selected: !setSelected && xyz.children.length,
...
Danke, Paul
@@Paul
kann mir jemand die folgende Zeile(n) Javascript Code erklären?
Die sog. logischen Operatoren &&
und ||
ergeben in JavaScript nicht zwangsläufig einen booleschen Wert. Im MDN ist das recht gut beschrieben.
!setSelected && xyz.children.length
Wenn !selected
als false
gewertet wird (wenn bei dir also selected == true
ist), dann ist das Ergebnis gleich dem ersten Ausdruck !selected
, also false
. Andernfalls ist das Ergebnis gleich dem zweiten Ausdruck xyz.children.length
.
LLAP 🖖
Puh. Warum müssen die immer alle dreimal um die Ecke denken :-]
Vielen Dank
@@Paul
kann mir jemand die folgende Zeile(n) Javascript Code erklären?
Die sog. logischen Operatoren
&&
und||
ergeben in JavaScript nicht zwangsläufig einen booleschen Wert. Im MDN ist das recht gut beschrieben.
!setSelected && xyz.children.length
Wenn
!selected
alsfalse
gewertet wird (wenn bei dir alsoselected == true
ist), dann ist das Ergebnis gleich dem ersten Ausdruck!selected
, alsofalse
. Andernfalls ist das Ergebnis gleich dem zweiten Ausdruckxyz.children.length
.LLAP 🖖
„Wir haben deinen numidischen Schreiber aufgegriffen, o Syndicus.“
„Hat auf dem Forum herumgelungert …“
(Wachen in Asterix 36: Der Papyrus des Cäsar)
@@Paul
Warum müssen die immer alle dreimal um die Ecke denken :-]
Dass &&
und ||
in JavaScript mehr sind als boolesche Operatoren, finde ich sehr praktisch.
So kann man bspw. Variablen mit einem Defaultwert belegen:
function add(a, b)
{
return a + b;
}
add(2, 3); // ergibt 5
add(2); // ergibt NaN (not a number)
add(); // ergibt NaN (not a number)
function addplus(a, b)
{
a = a || 0;
b = b || 0;
return a + b;
}
addplus(2, 3); // ergibt 5
addplus(2); // ergibt 2
addplus(); // ergibt 0
@@Paul
⋮
LLAP 🖖
Zitiere bitte sinnvoll, nicht alles. Und bitte kein TOFU.
LLAP 🖖