JavaScript für .NET-Entwickler
()
About this ebook
Read more from Matthias Fischer
Windows Phone 8: Kochbuch für professionelle Apps Rating: 0 out of 5 stars0 ratingsVerschwörung im Kinzigtal: Kriminalroman Rating: 0 out of 5 stars0 ratingsDie Toten vom Kinzigtal Rating: 0 out of 5 stars0 ratingsTödliche Verwandlung: Kriminalroman Rating: 0 out of 5 stars0 ratingsDie Bestie vom Kinzigtal: Kriminalroman Rating: 0 out of 5 stars0 ratingsSchlafender Drache: Kriminalroman Rating: 0 out of 5 stars0 ratingsDie Farben des Zorns: Kriminalroman Rating: 0 out of 5 stars0 ratings
Related to JavaScript für .NET-Entwickler
Titles in the series (100)
Erfolgreiche Spieleentwicklung: OpenCL Rating: 0 out of 5 stars0 ratingsHTML5 für Mobile Web Rating: 0 out of 5 stars0 ratingsEinstieg in Google Go Rating: 0 out of 5 stars0 ratingsAlgorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsIT Wissensmanagement: Theorie und Praxis Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Rating: 0 out of 5 stars0 ratingsHTML5 Security Rating: 0 out of 5 stars0 ratingsNutzeraspekte in Suchmaschinen: Komponenten für eine gelungene Usability-Gestaltung Rating: 0 out of 5 stars0 ratingsVaadin mit Eclipse, Clojure und OSGi Rating: 0 out of 5 stars0 ratingsSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Rating: 0 out of 5 stars0 ratingsF#: Ein praktischer Einstieg Rating: 0 out of 5 stars0 ratingsAmazon Web Services für .NET Entwickler Rating: 0 out of 5 stars0 ratingsGeolocation mit PHP: Foursquare-API, Google Places & Qype Rating: 0 out of 5 stars0 ratingsNFC: Near Field Communication für Android-Entwickler Rating: 5 out of 5 stars5/5Java EE Security Rating: 0 out of 5 stars0 ratingsJava 7: Fork-Join-Framework und Phaser Rating: 0 out of 5 stars0 ratingsServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Rating: 0 out of 5 stars0 ratingsQualitätssicherung mit JavaScript und PHP Rating: 0 out of 5 stars0 ratingsJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Rating: 0 out of 5 stars0 ratingsUser Experience Testing 3.0: Status Quo, Entwicklung und Trends Rating: 0 out of 5 stars0 ratingsApache Tapestry: Einstieg in die komponentenorientierte Webentwicklung Rating: 0 out of 5 stars0 ratingsUX Design für Tablet-Websites: Ein Überblick Rating: 0 out of 5 stars0 ratingsÜberzeugende Präsentationen: Konzeption, Technik und Design Rating: 0 out of 5 stars0 ratingsOAuth 2.0: Client & Server Rating: 0 out of 5 stars0 ratingsJava FX - Embedded Rating: 0 out of 5 stars0 ratingsSharePoint-Entwicklung für Einsteiger Rating: 0 out of 5 stars0 ratingsJavaScript auf dem Server Rating: 0 out of 5 stars0 ratingsBig Data: Technologiegrundlagen Rating: 0 out of 5 stars0 ratingsSpring: Vier Perspektiven auf Framework und Ökosystem Rating: 0 out of 5 stars0 ratingsQualität in IT-Architekturen: Strategie und Planung Rating: 0 out of 5 stars0 ratings
Related ebooks
C# 8.0 – kurz & gut Rating: 0 out of 5 stars0 ratingsDynamic Proxies: Effizient programmieren Rating: 0 out of 5 stars0 ratingsJava 9 Streams Rating: 0 out of 5 stars0 ratingsEnterprise Java Web Services Rating: 0 out of 5 stars0 ratingsMQL: Eine hierarchische Abfragesprache mit TypeScript erstellen Rating: 0 out of 5 stars0 ratingsSprachenkompendium: Vala, Go und Rust Rating: 0 out of 5 stars0 ratingsJavaScript für Java-Entwickler Rating: 0 out of 5 stars0 ratingsAngular 2: Moderne Frontends für alle Plattformen entwickeln Rating: 0 out of 5 stars0 ratingsA++ und systemnahe Programmiersprachen: Funktional programmieren in C/C++ Rating: 0 out of 5 stars0 ratingsForms over Data mit Knockout.js: Die freie MVVM-JavaScript-Bibliothek im Praxiseinsatz Rating: 0 out of 5 stars0 ratingsProgrammieren lernen mit A++: Funktional programmieren in Python und Java Rating: 0 out of 5 stars0 ratingsSoftware Development Trends: Wegweisende Beiträge für eine neue IT: Wegweisende Beiträge für eine neue IT Rating: 0 out of 5 stars0 ratingsCSS: Grundlagen und Best Practices Rating: 0 out of 5 stars0 ratingsJPA 2.1: Persistence-Features in Java EE 7 Rating: 0 out of 5 stars0 ratingsC# 6.0 – kurz & gut Rating: 5 out of 5 stars5/5Aufsetzen, Testen und Betrieb einer Android-App Rating: 0 out of 5 stars0 ratingsDSL mit Xtext/Xtend. 4GL mit externem Quellcode Rating: 0 out of 5 stars0 ratingsModerne Webanwendungen mit AngularJS Rating: 0 out of 5 stars0 ratingsC# 10 – kurz & gut Rating: 0 out of 5 stars0 ratingsDatenvisualisierung mit Processing Rating: 0 out of 5 stars0 ratingsPolyglottes Programmieren in Java Core Rating: 0 out of 5 stars0 ratingsNext Level JavaScript: Schlagworte Rating: 0 out of 5 stars0 ratingsJavaScript und TypeScript für C#-Entwickler Rating: 0 out of 5 stars0 ratingsClojure: Funktionale Programmierung für die JVM Rating: 0 out of 5 stars0 ratingsRuby Pakete 100 Stöße: Eine Stunde Meisterklasse, Ausgabe 2024 Rating: 0 out of 5 stars0 ratingsEinstieg in Google Go Rating: 0 out of 5 stars0 ratingsSoftware entwickeln mit C#, WPF und dem MVVM-Konzept Rating: 0 out of 5 stars0 ratingsJava 8 Streams Rating: 0 out of 5 stars0 ratingsWeb Services mit Apache CXF: Schnell und einfach erklärt Rating: 0 out of 5 stars0 ratingsProgrammieren mit PHP: Grundlagen der Programmierung von Web-Applikationen mit der Skript-Sprache PHP Rating: 0 out of 5 stars0 ratings
Programming For You
Mikrocontroller in der Elektronik: Mikrocontroller programmieren und in der Praxis einsetzen Rating: 0 out of 5 stars0 ratingsDie ultimative FRITZ!Box Bibel - Das Praxisbuch 2. aktualisierte Auflage - mit vielen Insider Tipps und Tricks - komplett in Farbe Rating: 0 out of 5 stars0 ratingsPython-Grundlagen Rating: 0 out of 5 stars0 ratingsC++ – kurz & gut: Aktuell zu C++17 Rating: 4 out of 5 stars4/5Das große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Rating: 4 out of 5 stars4/5SQL – kurz & gut Rating: 0 out of 5 stars0 ratingsAndroid-Entwicklung für Einsteiger - 20.000 Zeilen unter dem Meer: 2. erweiterte Auflage Rating: 0 out of 5 stars0 ratingsPython programmieren lernen: Der spielerische Einstieg mit Minecraft Rating: 0 out of 5 stars0 ratingsVue.js kurz & gut Rating: 0 out of 5 stars0 ratingsEigene Spiele programmieren – Python lernen: Der spielerische Weg zur Programmiersprache Rating: 0 out of 5 stars0 ratingsProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Rating: 0 out of 5 stars0 ratingsMicrocontroller für das IoT Rating: 0 out of 5 stars0 ratingsPraktisches Programmieren in C: Grundlagen und Tipps Rating: 0 out of 5 stars0 ratingsAndroid-Programmierung kurz & gut Rating: 0 out of 5 stars0 ratingsDie ultimative QNAP NAS Bibel - Das Praxisbuch - mit vielen Insider Tipps und Tricks - komplett in Farbe Rating: 0 out of 5 stars0 ratingsPython kurz & gut: Für Python 3.x und 2.7 Rating: 3 out of 5 stars3/5Programmieren von Kopf bis Fuß Rating: 4 out of 5 stars4/5Programmieren für Einsteiger: Teil 1 Rating: 0 out of 5 stars0 ratingsJavaScript kinderleicht!: Einfach programmieren lernen mit der Sprache des Web Rating: 0 out of 5 stars0 ratingsDas Franzis Starterpaket Arduino Uno: Das Handbuch für den Schnelleinstieg Rating: 0 out of 5 stars0 ratingsSQL von Kopf bis Fuß Rating: 4 out of 5 stars4/5Games | Game Design | Game Studies: Eine Einführung (Deutschsprachige Ausgabe) Rating: 0 out of 5 stars0 ratingsRichtig einsteigen: Excel VBA-Programmierung: Für Microsoft Excel 2007 bis 2016 Rating: 0 out of 5 stars0 ratingsPowerShell: Anwendung und effektive Nutzung Rating: 5 out of 5 stars5/5Softwareentwicklungsprozess: Von der ersten Idee bis zur Installation Rating: 0 out of 5 stars0 ratings.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Rating: 0 out of 5 stars0 ratingsRaspberry Pi: Mach's einfach: Die kompakteste Gebrauchsanweisung mit 222 Anleitungen. Geeignet für Raspberry Pi 3 Modell B / B+ Rating: 0 out of 5 stars0 ratingsC von Kopf bis Fuß Rating: 3 out of 5 stars3/5JavaScript kurz & gut Rating: 3 out of 5 stars3/5C++: Kurzportträt einer zeitlosen Sprache Rating: 0 out of 5 stars0 ratings
Reviews for JavaScript für .NET-Entwickler
0 ratings0 reviews
Book preview
JavaScript für .NET-Entwickler - Matthias Fischer
GmbH
1 Einführung in die Grundlagen der Programmiersprache JavaScript
Die Programmiersprache JavaScript wurde ursprünglich von der Firma Netscape unter dem Namen LiveScript entwickelt. Sie war vor allem darauf ausgelegt, einfache Interaktivitäten durch Manipulation des DOMs auf der Webseite hineinzubringen. Seitdem hat sich an den Grundlagen der Sprache selbst relativ wenig verändert, abgesehen von kleineren Erweiterungen mit neuen Versionen. Was sich jedoch seit der Einführung der Sprache grundlegend gewandelt hat, sind die verschiedenen Einsatzgebiete von JavaScript.
Neben Bibliotheken und Frameworks, die den Entwickler auf der Clientseite bei der Entwicklung moderner Oberflächen unterstützen, haben sich auch Technologien und damit Bibliotheken herausgebildet, die einen serverseitigen Einsatz von JavaScript ermöglichen. Dazu zählt etwa Node.js [1]. Projekte wie node-webkit [2] ermöglichen darüber hinaus sogar die Entwicklung plattformübergreifender Desktopanwendungen in JavaScript. Eines haben alle diese Anwendungen jedoch gemeinsam: die Programmiersprache JavaScript.
Auf den ersten Blick betrachtet scheint JavaScript anderen „Klammersprachen" wie C#, C++ oder auch Java sehr ähnlich. Bei genauerer Betrachtung ergeben sich jedoch größere Unterschiede, die besonders aufgrund der syntaktischen Ähnlichkeit immer wieder zu Verwirrung führen.
JavaScript ist eine dynamisch typisierte, objektorientierte, aber klassenlose Programmiersprache. Trotzdem lassen sich Objekthierarchien und Vererbung mithilfe der so genannten prototypischen Vererbung realisieren. Dazu kommen weitere Besonderheiten wie der Funktions-Scope, die automatische Konvertierung von Typen sowie das teilweise automatische Einfügen von Semikolons.
Das Typsystem: Dynamische Typisierung
Einer der größten Kritikpunkte an JavaScript ist immer wieder, dass diese Sprache keine strenge Typisierung verwendet, wie wir sie von den .NET-Sprachen, C/C++ oder auch Java kennen. In JavaScript nimmt eine Variable nach jeder Zuweisung eines Werts jeweils den Typ des zugewiesenen Werts an. Dazu kommt, dass Objekte zu jedem Zeitpunkt erweitert und verändert werden können. Damit ist zum Zeitpunkt des Erstellens keine statische Typprüfung des Programmcodes, wie sie beispielsweise ein C#-Compiler durchführt, möglich, da erst zum Zeitpunkt des Zugriffs bekannt ist, über welche Eigenschaften der Typ dann verfügt. Abhilfe schaffen hier Sprachen, die nach JavaScript kompiliert werden können, wie beispielsweise CoffeeScript [3], oder Erweiterungen der Programmiersprache JavaScript, wie sie TypeScript [4] ermöglicht. In diesem Kapitel geht es jedoch erst einmal um die Sprache JavaScript an sich.
Welche Typen gibt es eigentlich in JavaScript? JavaScript kennt insgesamt nur vier bzw. fünf Typen (Number, String, Boolean, Object und Undefined), wenn man „Undefiniert" mitzählt. Dabei wird nicht explizit in ganzzahlige und Gleitkommawerte unterschieden. Alle Zahlen sind ausschließlich vom Typ Number, der intern als 64-Bit-Gleitkommawert nach dem IEEE-754-(double)-Standard gilt. Um auszudrücken, dass ein Wert keine gültige Zahl ist, wird die Konstante Number.NaN (Not a Number) verwendet. Hierbei ist zu beachten, dass diese Konstante nicht auf Gleichheit geprüft werden kann. NaA ist nicht gleich NaN. Um zu überprüfen, ob eine Variable einen ungültigen Wert enthält, muss die Funktion Number.isNaN(variable) verwendet werden. Andere Typen lassen sich mithilfe der Funktion Number(variable) in eine Zahl umwandeln.
Zeichenketten sind in JavaScript 16-Bit-Zeichen nach der UCS-2-Kodierung (nicht UTF-16). Es gibt keinen separaten Typ, um ein einzelnes Zeichen darzustellen, ein Zeichen ist eine Zeichenkette mit der Länge 1. Alle Zeichenketten sind (wie in vielen Programmiersprachen) unveränderlich. Die Gleichheit von zwei Zeichenketten kann mithilfe des Gleichheitsoperators (==) geprüft werden. Andere Typen lassen sich mithilfe der Funktion String(variable) in eine Zeichenkette umwandeln.
Wahrheitswerte werden mithilfe des Typs Boolean abgebildet. In JavaScript ist dieser Typ nicht von einem anderen Typen (z. B. Ganzzahl (int)) abgeleitet. Es gibt nur zwei Werte,