NEWS
IF .. THEN .. ELSE versus SWITCH .. CASE ..
-
@legro sagte in IF .. THEN .. ELSE versus SWITCH .. CASE ..:
Gibt es auch in javascript eine Möglichkeit, so eine Art code library zu etablieren
Bedingt durch die technischen Möglichkeiten von Node.js gibt es im Skript-Adapter derzeit nur die globalen Skripte, keine Module (was die bevorzugte Lösung wäre).
Globale Skripte liegen im Ordner "global" und werden vor jedes Skript kopiert, bevor das Skript ausgeführt wird.Es erfüllt deinen Zweck, du solltest aber bedenken, dass der Code dann in jedem anderen Skript auch drin ist. Trigger o.ä. sollten daher nicht drin sein. Mehrfach genutzte Funktionen kannst du aber z.B. auslagern.
Wie gut das mit Blockly funktioniert, weiß ich allerdings nicht. -
Vielen Dank für die alles klärende Antwort!
Nach dieser Erläuterung gehe ich davon aus, dass javascript nicht mit einem Compiler sondern Interpreter arbeitet. Code Libraries dürfte es ohnehin nur auf Compiler basierten Systemen geben.
Sei‘s d‘rum! Um so viel doppelt vorhandenen Quellcode handelt es sich bei meiner Installation sicherlich nicht, dass sich das im System auswirken könnte.
Ob’s sich mit Blockly realisieren lässt? Ich werde es ausprobieren und berichten.
-
@legro sagte in IF .. THEN .. ELSE versus SWITCH .. CASE ..:
Nach dieser Erläuterung gehe ich davon aus, dass javascript nicht mit einem Compiler sondern Interpreter arbeitet.
Jein. Unter der Haube gibts da auch Just-In-Time-Compiler etc. aber an sich hast du Recht.
Code-Libraries gibts in Form von Modulen (andere js-Dateien in bestimmter Form), die man per
require
einbinden kann - nur für eigene Skripte aus dem Skript-Adapter geht das so nicht. -
Vielen Dank für deine klaren und präzisen Antworten. Bei solch ausgezeichneten Hilfestellungen macht mir das Ganze nicht nur Spaß, da kommt sogar Freude auf.
Daher möchte ich mutig mich intensiver mit der Programmiersprache JSON beschäftigen und suche nun nach einer entsprechenden Dokumentation. Zwar ist die Möglichkeit Blockly in Code umzuwandeln eine tolle Sache, um die Programmiersprache kennenzulernen, aber man erhält unweigerlich bloß einen recht eingeschränkten Einblick in diese Welt. Weißt du auch hier Rat?
-
@legro Zumindest für die ioBroker spezifischen Funktionen gibt es hier eine brauchbare Anleitung mit Beispielen:
https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md
A.
-
@legro sagte in IF .. THEN .. ELSE versus SWITCH .. CASE ..:
Programmiersprache JSON
Ich denke du meinst JavaScript. JSON ist lediglich eine davon abgeleitete Notation für Daten.
Zum Lernen gibt es unzählige Tutorials, z.B. https://javascript.info/js
Allerdings gehen viele davon aus, dass du den Code in einem Browser ausführst - wir sind aber unter Node.js unterwegs. Für die Sprachgrundlagen ist das aber erst mal egal. -
Vielen Dank für diesen Hinweis.
Allerdings geht‘s dort gleich in die Vollen, sodass mir fast schon heiß und kalt wird.
Aber eines habe ich hoffentlich schon richtig verstanden: All die vielen tollen Beispiele kann ich ja einfach mittels den Blockly-Bausteinen JS-Funktion mit Ergebnis und Javascript-Funktion einbinden!?
Allerdings wünsche ich mir noch eine Anleitung, über die in JSON verfügbare(n) Datentypen, Kontrollstrukturen, .. und die übliche Syntax. Vieles erinnert mich zwar an die Programmiersprache C, jedoch war‘s das auch schon und ich fühle mich in dieser für mich neuen Programmiersprache fast schon wieder wie ein Anfänger.
-
Wenn dich das englische nicht schreckt kann ich https://javascript.info/ empfehlen. Einiges davon ist gezielt auf Webseiten und den Einsatz im Browser, die generellen sprach Infos zu synchronen / asynchronen Funktionen sowie Datentypen sind aber soweit nutzbar.
Nebenbei, die Sprache ist JavaScript, nicht JSON.
A.
-
@Asgothian said in IF .. THEN .. ELSE versus SWITCH .. CASE ..:
Wenn dich das englische nicht schreckt kann ich https://javascript.info/ empfehlen. ..
Englisch ist doch kinderleicht. In England kann das schließlich jedes Kind. Schlimmer ist’s da schon bei Naturwissenschaften: Erklärt ein chinesischer Lehrer etwa den Kleinen in präzisem Chinesisch die Mathematik, so kommt‘s den Schülern dennoch bloß spanisch vor. Schlimmer noch! In Spanien soll‘s umgekehrt sein.
Vielen Dank für den Hinweis. Ich denke, mit den hier erhaltenen Tipps werde ich mich in Javascript zunehmend reinfinden können.
Die Einleitung des von dir verlinkten Tutorials verweist auf TypeScript als „strict data typing” - also auf die Welt an Programmiersprachen aus der ich komme. Diese Scriptsprache wird ja auch von ioBroker unterstützt und somit sollte ich mich ggf. auch hiermit einmal beschäftigen.
Kommt Zeit, kommt Rat, kommt Tat ..
-
@legro sagte in IF .. THEN .. ELSE versus SWITCH .. CASE ..:
also auf die Welt an Programmiersprachen aus der ich komme
Diese Scriptsprache wird ja auch von ioBroker unterstützt und somit sollte ich mich ggf. auch hiermit einmal beschäftigen.
Dann verweise ich dich mal auf https://forum.iobroker.net/topic/36493/09-09-20-30-einsteiger-cursus-demonstration-von-typescript und das TypeScript Handbook https://www.typescriptlang.org/docs/handbook/ welches übrigens auch einen guten Einstiegspunkt für Nicht-JS-Programmierer hat.