Advertisement
  1. Code
  2. JavaScript

Was ist JavaScript?

by
Read Time:10 minsLanguages:

German (Deutsch) translation by Tatsiana Bochkareva (you can also view the original English article)

Zu sagen, dass JavaScript in der Webentwicklung auf dem Vormarsch ist, wäre eine Untertreibung. Tatsächlich hat der berühmte Programmierer Jeff Atwood vor Jahren Atwoods Gesetz geprägt, in dem er erklärte:

Jede Anwendung, die in JavaScript geschrieben werden kann, wird eventuell in JavaScript geschrieben.

Zum Zeitpunkt des Schreibens dieses Artikels gibt es so viele JavaScript-Frameworks und -Bibliotheken, dass es überwältigend ist zu wissen, wo Sie anfangen sollen, besonders, wenn Sie ein Anfänger sind.

Und ich weiss, dass vieles, was wir hier veröffentlichen, passt sich für diejenige, die schon Erfahrung im Schreiben von Webapp oder in der Webentwicklung haben. Aber das ist nicht die Zielgruppe für diesen Artikel.

Stattdessen wird dies speziell für diejenigen unter Ihnen geschrieben, die noch nie (oder kaum) eine Zeile JavaScript geschrieben haben und mehr über die Sprache erfahren und verstehen möchten, was da draußen ist. Darüber hinaus möchten wir erläutern, wie es verwendet wird und was Sie davon erwarten können.

Kurz gesagt, wenn Sie ein erfahrener Profi sind, ist dieser Artikel nichts für Sie. Wenn Sie jedoch neugierig auf JavaScript sind, sich aber nicht sicher sind, wo Sie anfangen sollen, hilft Ihnen dieser Primer möglicherweise dabei, die richtige Richtung einzuschlagen.

Fangen wir an.

JavaScript definiert

Sie haben wahrscheinlich gehört, dass JavaScript als "clientseitige Skriptsprache" bezeichnet wird. Dies ist eine andere Art zu sagen, dass es sich um eine Programmiersprache handelt, die in einem Webbrowser ausgeführt wird.

Alternativ definiert Wikipedia es folgendermaßen:

JavaScript ist eine dynamische, untypisierte und interpretierte Programmiersprache auf hoher Ebene. Es wurde in der ECMAScript-Sprachspezifikation standardisiert.

All dies ist wahr (mit unterschiedlichem Komplexitätsgrad), aber es ist auch erwähnenswert, dass JavaScript auch auf der Serverseite ausgeführt werden kann. Das geht uns jedoch voraus. Lassen Sie uns stattdessen zunächst einige der oben genannten Punkte erläutern, und wir werden später in diesem Artikel auf serverseitiges JavaScript eingehen.

  • Hohes Level. Wenn eine Programmiersprache auf hohem Niveau ist, wird sie als eine Sprache betrachtet, die erstellt wurde, ohne dass feinere Details über den zugrunde liegenden Computer bekannt sein müssen. Sie müssen den Speicher nicht verwalten, Sie müssen nicht wissen, welcher Prozessortyp ausgeführt wird, und Sie müssen sich nicht mit Zeigern befassen (z. B. in Sprachen wie C oder Assembly).
  • Dynamisch. Dynamische Sprachen ermöglichen es Entwicklern, bestimmte Aspekte der Sprache zu erweitern, indem sie neuen Code hinzufügen oder neue Objekte (z. B. ein Post-Objekt) einführen, während das Programm ausgeführt wird, anstatt das Programm kompilieren zu müssen. Dies ist eine leistungsstarke Funktion von JavaScript.
  • Untyped. Wenn Sie Programmiererfahrung haben, sind Sie wahrscheinlich auf bestimmte Arten von Sprachen gestoßen, bei denen Sie den Variablentyp angeben müssen, mit dem Sie arbeiten. Beispielsweise speichert Ihre Variable möglicherweise eine string oder einen boolean Wert. In JavaScript ist dies nicht erforderlich. Stattdessen deklarieren Sie einfach eine var mit dem Schlüsselwort var.
  • Interpretiert. Wenn eine Sprache eine kompilierte Sprache ist, wird der von Ihnen geschriebene Code in eine ausführbare Binärdatei konvertiert, die Sie an andere verteilen können. In Windows werden diese Dateien als EXE-Dateien bezeichnet. Unter OS X sind dies häufig Programme, die Sie aus dem App Store herunterladen oder in Ihr Anwendungsverzeichnis ziehen. JavaScript wird interpretiert, dh es gibt keinen Compiler. Stattdessen wird der Code interpretiert (wie auch PHP), sodass zwischen dem von Ihnen geschriebenen Code und dem Computer eine Zwischensoftware namens Interpreter vorhanden ist, mit der die Anweisungen hin und her übersetzt werden können.
  • Standardisiert. JavaScript ist standardisiert (sein offizieller Name ist ECMAScript), was bedeutet, dass jeder Browser, der den Standard implementiert, dieselben Funktionen wie jeder andere Browser bietet. Wäre es nicht standardisiert, bietet Chrome möglicherweise einige Funktionen, die Edge nicht bietet, und umgekehrt.

Nachdem wir die Attribute der Sprache behandelt haben, können wir bestimmte Aspekte und Nuancen der Sprache diskutieren.

Obwohl all das wichtig ist, ist es auch wichtig zu wissen, wie die Sprache funktioniert (insbesondere wenn Sie mit anderen Sprachen gearbeitet haben), damit Sie nicht mit vorgefertigten Ideen in die Entwicklung gehen, wie sie funktionieren könnte oder wie es sollte funktionieren.

Stattdessen möchte ich lieber erläutern, wie es funktioniert, damit Sie mit dem Schreiben von Code beginnen und genau verstehen können, was Sie gerade tun.

Über die Sprache

JavaScript ist vor allem eine objektorientierte Programmiersprache, unterscheidet sich jedoch wahrscheinlich ein wenig von dem, was Sie normalerweise sehen (wenn Sie zuvor eine objektorientierte Programmiersprache verwendet haben).

JavaScript ist eine sogenannte prototypische Sprache. Dies bedeutet, dass alle Objekte in JavaScript wie String auf Prototypen basieren.

Auf diese Weise können wir als Entwickler den Objekten mithilfe der prototypischen Vererbung zusätzliche Funktionen hinzufügen:

Prototypbasierte Programmierung ist ein Stil der objektorientierten Programmierung, bei dem die Wiederverwendung von Verhalten (als Vererbung bezeichnet) über einen Prozess zum Klonen vorhandener Objekte durchgeführt wird, die als Prototypen dienen.

Ich würde argumentieren, dass Sie an dieser Stelle möglicherweise einen Vorteil haben, wenn Sie noch nie zuvor mit einer objektorientierten Sprache gearbeitet haben, da Sie kein konzeptionelles Modell verschieben müssen, um darüber nachzudenken, wie dies funktioniert.

Wenn Sie andererseits in diesen Arten von Sprachen gearbeitet haben, lohnt es sich meiner Meinung nach zu unterscheiden, wie sich die prototypische Vererbung von der klassischen Vererbung unterscheidet:

  • In der klassischen Vererbung werden wir als Entwickler eine Klasse schreiben. Aus dieser einzelnen Klasse können mehrere Objekte erstellt werden. Außerdem können wir dann eine andere Klasse schreiben, die von dieser Klasse erbt, und dann Instanzen dieser Klassen erstellen. In dieser Situation teilen Unterklassen Code mit ihrer Basisklasse. Wenn Sie also eine Instanz einer Unterklasse erstellen, erhalten Sie die Funktionalität sowohl der Unterklasse als auch der übergeordneten Klasse.
  • Bei der prototypischen Vererbung gibt es keine Klassen. Stattdessen definieren Sie einfach ein Objekt und führen die erforderlichen Funktionen ein. Wenn Sie einem vorhandenen Objekt Funktionen hinzufügen möchten, fügen Sie diese dem Prototyp des Objekts hinzu. Wenn Sie versuchen, eine Methode für ein Objekt wie Number aufzurufen, sucht sie zuerst nach der Methode für dieses Objekt. Wenn es es nicht findet, bewegt es sich die Kette hinauf, bis es die Methode findet (die möglicherweise auf dem Basis Object lebt).

Schließlich und vielleicht das Wichtigste ist, dass wenn Sie ein Objekt über seinen Prototyp ändern, es für jeden zugänglich ist, der dieses Objekt verwendet (zumindest im Kontext Ihrer Umgebung).

Es ist wirklich mächtig, es ist wirklich cool, aber es erfordert auch eine leichte Änderung des Denkens, wenn Sie nicht daran gewöhnt sind, in einer solchen Umgebung zu arbeiten.

Wie verwenden wir JavaScript?

In Bezug darauf, wie wir JavaScript tatsächlich einsetzen, hängt es letztendlich von Ihren Zielen ab. Zu einem bestimmten Zeitpunkt bedeutete die Arbeit mit JavaScript, dass Sie auf einer Webseite "etwas bewirken" mussten. Es sollte das Verhalten kontrollieren.

Dies kann das Einführen eines Elements, das Entfernen (oder Ausblenden) eines Elements oder ähnliches sein. Dann entwickelte sich das Web ein wenig weiter und die Browser konnten asynchrone Anrufe an den Server tätigen, die Antwort verarbeiten und dann den Status der Seite basierend auf dieser Antwort ändern.

All dies wird über Ajax erreicht. Wenn Sie dies lesen, sind Sie wahrscheinlich mit dem Begriff vertraut. Wenn dies nicht der Fall ist, können Sie sich vorstellen, dass JavaScript den Server, auf dem sich die Seite befindet, anruft und dann die empfangene Antwort verarbeitet, ohne die Seite neu zu laden.

Aber es ist noch darüber hinaus gereift.

Google hat eine hochentwickelte JavaScript-Analyse-Engine namens V8 entwickelt. Andere Browser arbeiten ebenfalls daran, eine optimale JavaScript-Leistung bereitzustellen.

The landing page for Chrome V8 Googles JavaScript EngineThe landing page for Chrome V8 Googles JavaScript EngineThe landing page for Chrome V8 Googles JavaScript Engine

Tatsächlich können wir jetzt JavaScript mit Tools wie Node.js auf den Server schreiben. Darüber hinaus können wir sogar Hybridanwendungen erstellen, die auf unseren Mobilgeräten ausgeführt werden. Dies bedeutet, dass wir mithilfe von JavaScript Lösungen für unsere Telefone, Tablets und Desktop-Computer erstellen können.

The homepage for Nodejs a runtime engine for writing JavaScript on the serverThe homepage for Nodejs a runtime engine for writing JavaScript on the serverThe homepage for Nodejs a runtime engine for writing JavaScript on the server

Und dies kommt aus einer Sprache, die früher verwendet wurde, um Dinge auf einem Bildschirm zu animieren. All dies bedeutet, dass Sie JavaScript nicht unterschätzen sollten, wenn Sie neu in JavaScript sind.

"Was soll ich von der Sprache erwarten?"

Das ist interessant zu lesen und es macht Spaß zu sehen, was wir können, aber was können wir aus rein praktischer Sicht von der JavaScript-Sprache erwarten?

Unabhängig davon, ob Sie neu in der Sprache sind oder eine neue Sprache lernen möchten, wenn Sie aus einem anderen Hintergrund stammen, haben Sie ein gewisses Maß an Erwartungen an das, was die Sprache bieten kann.

Und obwohl wir darüber gesprochen haben, wie die Sprache aus einer internen Perspektive funktioniert, haben wir nicht wirklich über die Objekte gesprochen, die in der Sprache verfügbar sind, geschweige denn über APIs. Um ehrlich zu sein, wäre es ein eigenständiger Artikel, die APIs und integrierten Funktionen in der Sprache zu behandeln.

Aber seine eingebauten Objekte abdecken? Das können wir überprüfen, bevor wir diesen Artikel beenden:

  • Objekt. Das Basisobjekt, von dem alle anderen Objekte einen Teil ihrer Grundfunktionalität erben.
  • Function. Da JavaScript wirklich objektorientiert ist, bedeutet dies, dass alles ein Objekt ist, einschließlich Funktionen. Wenn Sie also eine neue Funktion erstellen, erstellen Sie einen Verweis auf ein Objekt mit einem Funktionstyp. Und Funktionen verfügen über Eigenschaften, die Sie zur Laufzeit überprüfen können (z. B. die übergebenen Argumente).
  • Boolean. Dieses Objekt dient als Objekt-Wrapper für einen booleschen Wert. In vielen Sprachen sind Boolesche Werte ein Datentyp, der entweder true oder false ist. In JavaScript können Sie weiterhin mit diesen Werten arbeiten, sie sind jedoch als Objekte zu verstehen.
  • Number. In vielen Programmiersprachen gibt es primitive Typen wie float, int, double usw. In JavaScript gibt es nur einen Zahlentyp und auch ein Objekt.
  • Date. Das Arbeiten mit Daten in der Programmierung macht nie Spaß, besonders wenn Sie Zeitzonen einführen. Ich kann nicht sagen, dass JavaScript alle Ihre Probleme in Bezug auf Zeitzonen löst, aber es kann die Arbeit mit Datumsangaben etwas einfacher machen (von Jahr und Monat bis zu Tag, Stunde, Minute und Sekunde).
  • String. Nahezu jede Programmiersprache hat einen primitiven String-Datentyp. JavaScript ist nicht viel anders, außer dass die Zeichenfolge erwartungsgemäß ein Objekt mit eigenen Eigenschaften ist.

Denken Sie daran, dass alle oben angezeigten Typen Objekte mit eigenen Eigenschaften (und Funktionen) sind, die Sie aufrufen können. Dies bedeutet nicht, dass Sie Konstruktoren aufrufen müssen, um Ihre Variablen zu instanziieren. Das heißt, Sie können Zeichenfolgen, Boolesche Werte und Zahlen wie folgt erstellen:

Aber letztendlich sind sie immer noch Objekte.

Dies sind die Grundobjekte. Es gibt weitaus fortgeschrittenere Objekte, die es wert sind, untersucht zu werden, insbesondere wenn Sie mit der Fehlerbehandlung, verschiedenen Arten von Sammlungen außerhalb von Arrays usw. arbeiten.

Wenn Sie mehr darüber lesen möchten, empfehle ich dringend, diese Seite im Mozilla Developer Network zu lesen.

Welche Bibliotheken und Frameworks sind verfügbar?

Wenn Sie mit den verschiedenen Frameworks, Bibliotheken und anderen Tools in der JavaScript-Wirtschaft Schritt gehalten haben, sind Sie keineswegs im Rückstand, wie dynamisch die Wirtschaft geworden ist.

Dieser Artikel richtet sich jedoch an diejenigen, die mit JavaScript beginnen möchten. Nachdem Sie ein grundlegendes Verständnis der Struktur und Funktionsweise der Sprache haben, sollten Sie sich die angebotenen Bibliotheken und Frameworks ansehen, um die Web- und / oder Anwendungsentwicklung zu vereinfachen.

  • jQuery ist eine Bibliothek, die eine browserübergreifende API bereitstellen soll, mit der Sie "weniger schreiben, mehr tun" können.
  • Angular ist ein JavaScript-Framework, das das Erstellen von Anwendungen mit nur einer Seite erleichtern soll.
  • React ist eine JavaScript-Bibliothek zum Erstellen von Benutzeroberflächen.
  • Backbone zielt darauf ab, Webanwendungen mithilfe von Modellen, Sammlungen und Ansichten zu strukturieren.
  • Ember.js ist ein weiteres Framework zum "Erstellen ehrgeiziger Webanwendungen".
  • Und mehr.

Dies ist alles andere als eine vollständige Liste der verfügbaren Optionen, aber es ist ein Anfang, und es sind eine Handvoll Optionen, die diejenigen, die sich mit JavaScript vertraut machen, zumindest kennen sollten, selbst wenn Sie nicht mit ihnen arbeiten.

Und wenn Sie anfangen, JavaScript zu lernen und einige dieser Tools zu erlernen, werden Sie vielleicht feststellen, wie beliebt einige davon sind, wenn es um einige Ihrer eigenen Lieblingsanwendungen geht.

JavaScript lernen

Wie Sie erwartet haben, wurde Envato entwickelt, um "Millionen von Menschen auf der ganzen Welt zu erziehen". Was wäre ein solcher Beitrag, wenn er keine Links zu einigen unserer beliebtesten JavaScript-Artikel und -Kurse enthalten würde?

Alle diese Ressourcen sind ideal, um mit JavaScript zu beginnen und es Ihrem Repertoire an Webentwicklungsfähigkeiten hinzuzufügen.

Abschluss

Wenn es um Webentwicklung geht, bleibt JavaScript erhalten. Obwohl Sie möglicherweise nicht das verwenden, was als "Vanille-JavaScript" angesehen wird, und sich für eine der vielen verfügbaren Bibliotheken und / oder Frameworks entscheiden, ist JavaScript eine Sprache, die fast jeder Webentwickler kennen sollte.

Natürlich arbeitet nicht jeder am Frontend. Einige sind reine serverseitige Entwickler. Einige sind rein clientseitige Entwickler. Trotzdem müssen wir alle zusammenarbeiten, um sicherzustellen, dass die verschiedenen Teile unserer Anwendungen miteinander kommunizieren.

Zu diesem Zweck ist es zumindest wichtig zu verstehen, wie Daten von der Clientseite über JavaScript an die Serverseite gesendet werden und wie sie auf der Serverseite verarbeitet und dann an die Clientseite zurückgegeben werden, um auf welche Weise auch immer verwendet zu werden.

Schreiben Sie JavaScript nicht so schnell ab, nur weil Sie kein Front-End-Entwickler sind. Die Chancen stehen gut, dass jemand, mit dem Sie arbeiten, es verwendet und Ihre Arbeit benötigt, um Teile der Anwendung zusammenzubinden.

Zugegeben, dieser Artikel kratzt nur an der Oberfläche. Wie ich am Anfang gesagt habe, soll der Artikel erklären, was JavaScript ist, wie es verwendet wird und was von ihm zu erwarten ist, insbesondere für diejenigen, die gerade erst mit der Sprache beginnen.

Wenn Ihnen dieser Artikel gefallen hat, können Sie auch meine Kurse und Tutorials auf meiner Profilseite lesen. Wenn Sie interessiert sind, können Sie in meinem Blog weitere Artikel speziell über WordPress und die WordPress-Entwicklung lesen.

Zusätzliche Ressourcen

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.