PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Javascript Crashkurs/Kurzreferenz Syntax?


Gast
2010-03-02, 23:07:18
Nabend,

also als hobbymäßiger Java-Entwickler mit stark vertieften OOP-Kentnissen habe ich mir gedacht, ich könnte ja mal kurz innerhalb weniger Tage was mit Ajax (und folglich Javascript) machen. JS hat C-Syntax und ist OO, klang gestern noch ziemlich simpel.

Jetzt schaue ich mir heute diverse Ajax/Javascript Frameworks an und verstehe nur Bahnhof. Hab ich mir wohl zuviel vorgenommen. Unter anderem eben doch Probleme, die Syntax zu verstehen.

Kennt ihr seiten, die einen Überblick für Umsteiger mit Vorkenntnissen bieten? Klar findet man bei Google ne Menge Einführungen und so weiter, aber ich will nicht schon wieder wissen was Arrays und was Methoden sind - eher wie sie unter Javascript aussehen.
So eine Kurzeferenz über alles, was in JS Relevanz hat wäre cool- bringt natürlich nur was mit code dabei.


Danke

Tiamat
2010-03-03, 00:19:04
Bei Galileo gibt´s ein Openbook zu JS und n bisl Ajax.
Ich würd ein Framework wie Script.aculo.us oder JQuery empfehlen, je nach Geschmack. Zu beiden Frameworks gibt´s genug Tutorials im Web.

Coda
2010-03-03, 02:06:13
Das Openbook sieht ziemlich danach aus als hätten die Autoren JS noch nicht als dynamische funktionale Programmiersprache mit Prototypen-Objektsystem verstanden gehabt. Da kommt ja nichtmal das Topic "Closure" im Inhaltsverzeichnis vor. Kann ich also auf keinen Fall empfehlen, wenn du moderne Frameworks verstehen willst.

JavaScript hat außer der Syntaxanlehnung *NICHTS* mit Java zu tun! Das muss man sich erstmal vollständig aus dem Kopf schlagen. Es ist viel näher an LISP.

Schau dir das mal an: http://ejohn.org/apps/learn/

aoe_forever
2010-03-03, 21:41:05
Es ist viel näher an LISP.

Ja.... klar. :freak:

Coda
2010-03-03, 23:03:22
Ja.... klar. :freak:
Nix na klar. Das ist so.

Es sieht zwar komplett anders aus als LISP, aber es ist eine funktionale Programmiersprache. Und wer sie nicht so behandelt schreibt den üblichen Schrottcode.

Beispiel:
function myloop(array, fn) {
for(var i = 0; i < array.length; ++i)
fn.call(array, array[i], i);
}

myloop([33, 42, 10], function(value, i) {
alert(value + " " + this[i]);
});

Das ist üblicher funktionaler Code, wird aber die meisten Leute einfach nur verwirren. Libraries wie jQuery, Prototype und Mootools verwenden das aber, deshalb muss man sich mal damit befassen.

Auch das Objektsystem ist seltsam, weil es keine fixen Klassen gibt, sondern jedes Objekt sozusagen seine eigene Klasse hat.

petersenk
2010-03-04, 00:20:02
Pflichtlektüre: Javascript: The Good Parts (alle anderen, vorallem älteren Bücher sind in der Regel Schrott. Auf keinen Fall lesen.)

Und als grundlegender Einstieg ist der Artikel JavaScript: The Wrrrld's Most Misunderstood Programming Language auf http://javascript.crockford.com/ zu empfehlen.

Und ja, ganz recht: Die C-ähnliche Syntax von JavaScript, [...], lassen sie wie eine gewöhnliche prozedurale Sprache aussehen. Das aber ist irreführend, denn JavaScript hat viel mehr Gemeinsamkeiten mit Sprachen wie Lisp oder Scheme als mit C oder Java.

^^ Und das ist auch gut so! :wink:

Coda
2010-03-04, 00:24:01
Das Beispiel würde übrigens ungefähr so aussehen in Common LISP:

(defun myloop (l fn)
(loop for i from 0 below (length l) do
(funcall fn l (nth i l) i))
)

(myloop '(33 42 10) #'(lambda (l value i)
(format t "~D ~D~%" value (nth i l))
))
Erschreckend ähnlich, nicht? ;)

Das mit dem Scope der aufgerufen Funktion ändern gibt's in LISP wohl nicht, weshalb die Closure jetzt drei Parameter hat. Wobei meine LISP-Kenntnisse sehr bescheiden sind ^^

Gast
2010-03-04, 14:25:20
du kannst dir auch mal das google webtool kit ansehen, wenn du ajax anwendungen schreiben möchtest. vorteil ist, dass du java schreibst und daraus dann js generiert wird.