string: Beispiele: Test, test, `Seitentitel: ${document.title}`

Ähnliche Dokumente
Repetitorium Informatik (Java)

Java I Vorlesung 6 Referenz-Datentypen

Java Kurs für Anfänger Einheit 5 Methoden

Informationsverarbeitung im Bauwesen

1 Polymorphie (Vielgestaltigkeit)

Javakurs für Anfänger

Welche Informatik-Kenntnisse bringen Sie mit?

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Monaden in anderen Programmiersprachen

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

Multimedia im Netz Wintersemester 2011/12

Virtuelle Realität und Simulation - Übung 2

Behandeln Sie»undefined«als»nicht vorhanden«thema 54

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

5.5.8 Öffentliche und private Eigenschaften

Java Schulung (Java 2 Java Development Kit 5 / 6)

1 Hashing und die Klasse String

2. Methoden. n Generelles zum Aufruf von Methoden. n Parameterübergabemechanismen (call by value, call by reference)

Distributed Computing Group

Ausarbeitung des Interpreter Referats

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Einführung in ActionScript

Methoden (fortgeschritten) in C# - 1

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Interfaces und Vererbung

Lua - Erste Schritte in der Programmierung

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein

Jürgen Bayer. Anonyme Methoden, Lambda-Ausdrücke und Ausdrucksbäume in.net

Interpreter - Gliederung

C++ - Einführung in die Programmiersprache Funktionen. Leibniz Universität IT Services Anja Aue

Algorithmen und Datenstrukturen

PIWIN 1 Übung Blatt 5

Informatik I. Übung 2 : Programmieren in Eclipse. 5. März Daniel Hentzen

Grundlagen von Python

Client-Server-Beziehungen

WTFJS? EnterJS Matthias Reuter

JAVA für Nichtinformatiker - Probeklausur -

Programmierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder

Javakurs 2013 Objektorientierung

JavaScript und Java. JavaScript: Geschichte. Philosophie der Sprache. Interpreter von Brendan Eich bei Netscape erfunden (in einer Woche)

Einführung in die Java- Programmierung

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Einführung in die Programmierung mit VBA

Einführung in die Informatik

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Theorie und Praxis einer JSON-RPC-basierten Web-API

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Java I Vorlesung Objektorientiertes Programmieren

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

JAVA-Datentypen und deren Wertebereich

Benutzerfunktionen Was ist eine Funktion, was ist eine Prozedur?

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Ersetzbarkeit, Client-Server Beziehungen

Arbeiten mit Arrays. 4.1 Eigenschaften Schlüssel und Element. Kapitel 4

Arrays. PHP JavaScript Kapitel 9

R-Wörterbuch Ein Anfang... ein Klick auf einen Begriff führt, sofern vorhanden, zu dessen Erklärung.

Shell-Scripting Linux-Kurs der Unix-AG

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Klassendefinitionen verstehen

Shell-Scripting Linux-Kurs der Unix-AG

Client-Server Beziehungen

Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden

Ein anonymer-methodenausdruck definiert eine anonyme Methode und ergibt einen Wert, der auf diese Methode verweist. primärer-nicht-array-ausdruck:

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Übersicht. Vorstellung des OO-Paradigmas

3 Objektorientierte Konzepte in Java

Einführung in die C-Programmierung

Objektorientierte Programmierung

5.4 Klassen und Objekte

Java Einführung Methoden. Kapitel 6

JavaScript in Drupal

Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung

Vererbung. Martin Wirsing. Ziele. Vererbung

Kapitel 3: Variablen

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

5.6 Vererbung. Vererbung

Programmieren I + II Regeln der Code-Formatierung

5 Grundlagen der Java-Syntax

Erwin Grüner

C++ - Operatoren. Eigene Klassen mit neuen Funktionen

Android-Apps Gegenüberstellung Delphi java

PHP Aufbaukurs. Tag 3. PHP5 & Klassen

Besonderheiten von C#

Vorlesung Programmieren

Einstieg in die Informatik mit Java

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2

Übung zur Vorlesung Multimedia im Netz

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

Probeklausur: Programmierung WS04/05

Einstieg in die Informatik mit Java

Objektorientierte Programmierung

Lua Grundlagen Einführung in die Lua Programmiersprache

Vorkurs C++ Programmierung

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Kapitel 6. Kontrollstrukturen und Methoden im Kontext von Klassendeklarationen

Transkript:

JS Crashkurs Einige JavaScript spezifische Dinge zusammengefasst. Datentypen Javascript kennt folgende primitiven Datentypen: undefined number: Beispiele: 1 1.0.0 1. 0x1 1e0 boolean: true oder false string: Beispiele: Test, test, `Seitentitel: ${document.title}` array: Beispiele: [], [1,2,3] function: Beispiele: function(){}, ()=>{} Alle anderen Datentypen sind vom typ Object. Primitive Datentypen können in ein Objekt verpakt werden: Object(123); // Ergibt ein Number object Object("Test"); // Ergibt ein String object new String("Test"); // Ebenfals ein String object (new String("Test")).valueOf(); // valueof gibt in diesem fall kein String Objekt, sondern wieder einen string zur ück. Object und String sind Klassen. valueof ist eine Funktion. In JavaScript sind Klassen = Funktionen. Alles hinter dem // sind

einzeilige Kommentare. Mehrzeilige Kommentare sind zwischen /* und */ Der einfachste Weg in JavaScript Objekte zu erzeugen ist folgendermassen: var x = { key: "value", a: 123, func(){} }; Grundlegende Sprachkonstrukte Variablen & Scope Variablen definiert man mit var, let oder const. Variablen mit var davor sind im momentanen Funktionsscope gültig, variablen mit let oder const im momentanen block scope. const variablen sind unveränderbar. Ein Scope ist ein Sichtbarkeitsbereich bzw. Gültigkeitsbereich in welchem die Variable existiert. var x; // Globale variable x let y; // Globale variable y { // Neuer Blockscope var z = 1; // Globale variable z mit wert 1 let w = 1; // Lokale variable w mit wert 1 } // Ende des Blockscopes, z existiert noch, w nichtmehr (function(){ // Function expression, neuer Funktionsscope

var q; // locale variable z, existiert nur innerhalb de r Funktion let r; // locale variable r, existiert nur innerhalb de r Funktion })(); // Funktion der Function expression aufrufen & ende des Funktionsscopes Neben dem Globalen, Localen und Blockscope wird manchmal auch vom Closure-Scope geredet. Wenn eine Funktion in einer Funktion eine Variable der darüberliegenden Funktion nutzt, liegt diese in einem Closure-Scope. Funktionen Eine Funktion kann alleine stehen, eine Funktion expression sein, oder eine Arrow function sein. Letztere ist in anderen Programmiersprachen als lambda oder closure function bekannt. Beispiel für Funktion: function test(a,b,c){ // Funktion test mit Parametern a, b, c und imlizitem parameter this. } Funktionen dürfen in Funktionen oder Global definiert werden, aber nicht in einem Block scope.

Beispiele function expression: var test = function test(a,b,c){ // Funktion expression m it name test, Parametern a, b, c und imlizitem parameter this, wird in variable test gespeichert. }; var test2 = function(a,b,c){ // Funktion expression mit P arametern a, b, c und imlizitem parameter this, wird in v ariable test2 gespeichert. }; (function(a,b,c){ // Funktion expression mit Parametern a, b, c und imlizitem parameter this. }); test(); // Aufruf der funktion, die durch die Variable te st referenziert wird Eine Function expression ist, wenn man es nicht mit einer alleinstehenden Funktion zutun hat, sondern mit einer die teil eines Ausdrucks, einer expression ist. In gesprächen unterscheidet man für gewöhnlich nicht zwischen Function expression und Function, aber beim Programmieren ist es relevant. Beispiel für Arrow funktionen: x => x // Arrow funktion mit argument x, welche argument x zurück gibt (a,b,c) => a+b+c // Arrow funktion mit argumenten a,b & c

, welche das Ergebnis der expression a+b+c zurück gibt. ()=>{return 0;} // Arrow funktion ohne elemente, die 0 zu rück gibt. Arrow funktionen haben kein eigenes this. Objekte, Objektzugriffe & Methodenaufrufe Ein Objekt hat keys/members/properties, also benannte Eigenschaften, welchen ein Wert zugeordnet wird. Beispiel: var x = { message: "Hello", print(){ alert(this.message); // übergabe des members message des Objekts referenziert durch die konstante this als par ameter an die funktion alert } }; // Speichere Objekt mit member message und methode/fun ktion print in variable x. x.print(); // Aufruf der Methode x.print mit this=x, Ausg abe "Hello" x.print.call({message:"world"}); // Aufruf der Methode x. print this={message:"world"}, Ausgabe "World" x["print"](); // Aufruf der Methode x.print mit this=x, A usgabe "Hello"

x["print"]["call"]({message:"world"}); // Aufruf der Meth ode x.print this={message:"world"}, Ausgabe "World" Mit dem Punkt greift man auf Objektmember/property/eigenschaft zu. Alternativ gehen auch eckige Klammern. Das Objekt kann hierbei der Inhalt einer Variable, der Rückgabewert einer Funktion, oder das Ergebnis eines Ausdrucks sein, z.b. (true).tostring(). Der versuch auf einen member von undefined oder null zuzugreifen produziert einen TypeError, da diese keine member haben. Der Aufruf einer Funktion über eine Eigenschaft eines Objekts führt dazu, das der implizite this parameter der Funktion auf das Objekt gesetzt wird, welches die eigenschaft hatte. Primitive typen werden dabei vorher in ein Objekt konvertiert: alert(typeof true); // ausgabe "boolean" Boolean.prototype.test = function(){alert(typeof this);} (true).test(); // Ausgabe object, da this ein Boolean obj ekt ist, und kein boolean prmitiv. Mehrere Variablen können das selbe Objekt referenzieren/beinhalten. Es ist dann egal, über welche man darauf zugreift. Es ist dann nicht wie wenn man 2 Taschen mit identischen Bällen hätte, sondern eher als hätte man 2 Taschen zu einer mit 2 öffnungen zusammengenäht, die einen Ball beinhaltet. Einige Methoden & Eigenschaften sind bei allen Objekten vorhanden, z.b. valueof, tostring, constructor, etc.