NEWS
Nachhilfe in Javascript
-
ich denke er meint "&&" bedeutet ein logisches "und".
"||" ist ein logisches "oder"
Schau mal hier http://www.w3schools.com/js/js_comparisons.asp
-
Ich fand das Thema ganz passend. Ich habe folgendes Skriptelement:
on ('hm-rpc.1.000C17099A0436.1.PRESENCE_DETECTION_STATE' || 'hm-rpc.1.000C17099A04BC.1.PRESENCE_DETECTION_STATE', function (dp) {Es handelt sich um 2 Bewegungsmelder, die eine Bewegung als Variable weitergeben sollen. Natürlich als "oder" verknüpft.
Das folgende Skript funktioniert, allerdings immer nur beim ersten Sensor. Sprich der nach dem || stehende Sensor schaltet nicht. Habe die Positionen auch schon getauscht, aber dann reagiert halt der Andere nicht.
Wo liegt denn mein Fehler? :?: :?: :?:
-
if (err || !client) ```` `Ich glaube das wichtigste wurde hier noch nicht erwähnt. Nicht sicher ob dir das bewusst ist:
Die Variablen err und client sind sehr wahrscheinlich Objekte. Diese sind in JavaScript "truthy" (also "wahr oder so ähnlich"), wenn sie weder null noch undefined sind. Der obige Code prüft also, ob entweder err einen Wert hat oder client keinen hat. Sollte eine dieser Variablen ein boolean sein, kann es seltsam werden.
Ausführlich wäre das so:
if (err != null || client == null)mit dem Hinweis dass "!= null" prüft ob die Variable weder null noch undefined ist. (!== null würde nur mit null vergleichen)
oder
if (typeof err !== "undefined" || typeof client === "undefined")Kurz:
1. funktioniert, kann aber unvorhergesehene Auswirkungen haben
2. ist weniger anfällig und mein Favorit
3. ist mir persönlich zu lang, funktioniert aber auch wenn du die Variable vorher nicht definiert hast.