Grundlagen der Programmierung mit JavaScript
Vorwort

Programmmierkurs

Mit JavaScrip Programmieren lernen

Auf dieser Seite geht es mir darum, einen möglichst einfachen Einstieg in die Programmierung, und damit auch von JavaScript und generell Programmiergrundlagen, zu vermitteln. CSS wird bis auf eine Ausnahme komplett vernachlässigt und mit HTML nur ein minimales Grundgerüst gebaut, dass für die klassische Ein- und Ausgabe der Programme dient.

------- Hilfreiche Werkzeuge -------

Tutorials und Refrenzen

  • Die Seite für Tutorials, Referenzen, Wiki und vieles mehr Selfhtml.org
  • Die Mozilla Entwicklerseite
  • Eine übersichtliche Seite: w3schools.com
  • Eine toll gemachte JavaScript Lern-Seite: JavaScript Hero
  • Editoren

  • Es gibt viele gute Editoren: z. B. Geany oder Notepad++. Ich habe mich mit Visual Studio Code angefreundet. Sehr schön auch Sublime Text
  • Bildbearbeitung Inkscape
  • Webbrowser: Google chrome Mozilla firefox Microsoft edge
  • IT News

  • Ein "must have" für IT'ler, IT-News, und mit vielem anderen, was es zu entdecken gibt, sicherlich eine Referenz:heise.de

  • JavaScript in anderen Bereichen

    Die Möglichkeiten sind mannigfaltig und reichen von Mikrocontroller-Programmierung bis zu serverseitigen Webanwendungen node.js mit Datenbankanbindung MongoDB, Desktopanwendungen (Artikel auf heise.de) und der Programmierung von Office Erweiterungen Google Apps Script. Als Beispiel zeige ich zwei Möglichkeiten:
  • Benutzerdefinierte Funktionen mit JavaScript als Erweiterung einer Tabellenkalkulation
  • Aus einer JavaScript Webanwendung eine Android App fürs Smartphone.
  • Das ursprüngliche und typische Umfeld

    Im Kontext der dynamischen Internetseiten agiert JavaScript zusammen mit HTML und CSS im Sinne der folgenden Abbildung:


    Geschichtliche Einordnung

    Timothy Berners-Lee hatte 1989 die Idee von Hypertexten, die über das Netz ausgetauscht werden können. In der Folgezeit entwickelte er HTML und gilt damit als Begründer des World Wide Web.

    Nach Mosaic entwickelte u. a. Marc Andreessen 1995 den Netscape Navigator, der weltweit bis dahin erfolgreichste und verbreitetste Webbrowsers.

    Zusammen mit Netscape wurde auch JavaScript entwickelt, um zunächst den statischen Inhalt der HTML Seiten dynamischer zu machen oder auch Benutzereingaben zu validieren.

    Programmierparadigmen

    Der ... standardisierte Sprachkern von JavaScript beschreibt eine dynamisch typisierte, objektorientierte, aber klassenlose Skriptsprache. ...In JavaScript lässt sich je nach Bedarf objektorientiert, prozedural oder funktional programmieren. Wikipedia

    Darüber hinaus

    Was heißt eigentlich funktional, Prozedural bzw. Objektorientiert

    Unter der prozeduralen Programmierung versteht man, logisch oder sinnvoll zusammenpassende Aufgaben in einer Prozeduren (procedures) zusammenzufassen. Für diese gekapselten Prozeduren vergibt der Programmierer einen Namen und packt die auszuführende Aufgabe dazu bei den meisten Programmiersprachen in geschweifte Klammern. Z. B.: quadriere { ergebnis = zahl * zahl; } oder sagHallo { console.log("Hallo!"); }, wobei die Anweisungen üblicherweise aus mehr als eine Zeile bestehen. Die Prozeduren werden auch Methoden oder Funktionen genannt. Wobei Funktionen typisch eine mathematische Berechnung beschreiben und Methoden eine davon abweichende Aufgabe. In JavaScript gibt es diese Unterscheidung nicht; beides wird Funktion genannt. Letztendlich läuft eine prozedurale Programmierung jedoch immer in einem fest vorgegebenen Ablauf ab, den es zu programmieren gilt. Ein Programm hat dabei immer einen festen Start- und Endpunkt. Der Programmfluss kann mit Bedingungen, z. B. Wenn: "tue das", ansonsten: "etwas anderes", und mit Schleifen: "tue etwas so und so oft", gesteuert werden.

    Eine Objektorientierte Programmierung, kurz OOP, läuft grundsätzlich auch nach diesen Regeln ab. Hinzu kommen Objekte, die einen gegebenen Sachverhalt beschreiben, der zunächst abstrakt gestaltet werden kann und später ausgebaut/vererbt und benutzt/gebunden werden kann. Beispiel: Ein Bankkunde hat eine ID und ein Konto. Später könnte er zu den Kunden gehören, die Geld anlegen, also Sparen wollen. Und im Programm können nun beliebig viele dieser 'Kunden-Objekte' angelegt werden die alle eine feste Laufzeit mit demselben Zinssatz bekommen. Oft werden Objekte oder Objektklassen auch einfach als Abbild einer Datenbankabfrage erstellt: "Gib mir alle Kunden aus dem PLZ-Bereich 9000, die ein Sparguthaben von mehr als 1000 Euro haben" und habe damit im Programm ein Kundenobjekt/-klasse, die ich mit speziellen Angeboten bewerben kann.