NEWS
Unterschied "falls true" und "falls nicht false"?
-
Ich hab schon öfter gelesen, falls man auf einen Wert testet (erste Hälfte im Screenshot) kann man sich den ganzen Vergleich sparen und einfach den Wert rein schreiben.
Wie sieht das nun aus, wenn man aber will, dass bei "false" etwas ausgeführt wird, macht da auch die Variante (zweite Hälfte) Sinn?
Oder isses einfach egal.
-
-
@padrino die jeweils erste und zweite Variante sind in der Funktion identisch
die zweite Variante ist ressourcenschonender -
Um hier noch ein bisschen Verwirrung zu stiften, das gilt nur wenn
Wert
sicher ein Logikwert ist.Falls das nicht der Fall ist, trifft
falls Wert = wahr
auf genauwahr
zu,
aberfalls Wert
bei folgenden:wahr
- Zahlen != 0
- nicht leere Zeichenketten
- Objekte
- Listen (Arrays)
-
Zur Vervollständigung
Das betrifft die sogenannte Interpretation von truthy bzw falsy Werten in JavaScript
Hier die detailerklärung mit vielen Beispielen inklusive den weiterführenden link zu falsy
https://developer.mozilla.org/de/docs/Glossary/Truthy -
@alcalzone sagte: trifft falls Wert = wahr auf genau wahr zu
Da Blockly den Vergleich ohne Typbindung ausführt, trifft falls Wert = wahr auch zu bei den Werten:
1
,"1"
und[1]
Falls nicht Wert trifft nur zu auf
false
,0
,""
,null
,undefined
undNaN
. -
@paul53 sagte in Unterschied "falls true" und "falls nicht false"?:
Da Blockly den Vergleich ohne Typbindung ausführt
-
Und warum sollte die zweite Variante Ressourcen schonener sein?
Ich setzte im Script immer die Variante als erstes die vermeindlich am meisten zutrifft. Denn nach dem Wert != false kommt ja immer auch ein else und sei es nur mit einen Debug-Log um im Fehlerfall das Problem zu finden.
-
@cash sagte in Unterschied "falls true" und "falls nicht false"?:
Und warum sollte die zweite Variante Ressourcen schonener sein?
Ganz ehrlich, darüber würde ich mir keine Gedanken machen. Wenn man das benchmarked, liegen alle Varianten im Bereich der Standardabweichung.
-
Dank Euch Mal für die ausführlichen Antworten.