Erinnerst du dich, als du JavaScript gelernt hast? In welchem Moment hast du es plötzlich "verstanden"? (Mein CSS-Aha-Moment war zum Beispiel, als ich etwas über das Box-Modell erfuhr ...)
Der Grund, den ich frage, ist, dass ich JS seit 6 Wochen lerne, aber ich finde es immer noch ziemlich verwirrend. Hier ist ein Zitat von etwas, das ich kürzlich auf SO gelesen habe:
"..Funktionen verhalten sich ähnlich wie Werte, da Methode eine Eigenschaft des Objekts ist, das den Wert einer Funktion hat (die auch ein Objekt ist)."
Ich bin gespannt, ob Sie am Anfang auch verwirrt waren und was Sie dazu gebracht hat, es zu verstehen.
(Ich lese die Sitepoints "Simply JavaScript", das Buch "Eloquent JavaScript" und folge Lyndas Essential JavaScript Tutorial. Ich habe keine Programmierkenntnisse und war schrecklich in Mathe;)
Vielen Dank!
Antworten:
Ich denke, der größte "AHA" Moment für mich war, als ich Folgendes vollständig begriffen habe:
Variablenwerte können alles sein, einschließlich Funktionen
quelle
Für mich war es, als ich verstand, dass der Kontext (worauf
this
weist er hin) einer Funktion willkürlich geändert werden kannhttp://www.digital-web.com/articles/scope_in_javascript/
quelle
Ich bin damit einverstanden, was einige der anderen Antworten berührt haben; Der A-ha-Moment für mich war, als ich verstand, was eine Schließung war .
Ich habe eine Antwort auf die Frage Was ist eine Schließung? um dies zu erklären.
Ohne Verständnis für Closures ist Javascript eine ziemlich eingeschränkte Sprache mit ein paar nützlichen Kurzsyntaxfunktionen wie
[]
für Arrays und JSON ({}
für Objekte) und im Kontext des Browsers das DOM (window
/document
).Sobald Sie jedoch die Abschlüsse verstanden haben, ist viel Verständnis vorhanden :
Ressourcen
quelle
Ich denke die für mich essentiellste Sprache 'Aha' war in Javascript
Für all diese Themen sollten Sie im Web viele Ressourcen finden.
(Und denken Sie nicht, dass alles völlig logisch wird: JavaScript ist verwirrend)
quelle
javascript fiel mir schwer, als ich es vor einigen jahren zum ersten mal lernte, da ich das erste mal die web-entwicklung vom serverseitigen ende der dinge (php und perl) aus lernte.
Es war nicht so sehr die Syntax oder das OOP oder irgendetwas, was mir entgangen ist, noch mehr die Live- und Ereignis-getriebene Fähigkeit von Javascript - von "mach dies und dies und dies und serviere es und du bist fertig", dies zu tun und dies und das und dann warten wir ständig darauf, dass etwas passiert und antworten, bis der Benutzer die Seite verlässt ". Das warf mich wirklich für eine Schleife.
Ich glaube nicht, dass ich etwas spezielles nennen kann, das es wirklich zum Eintauchen gebracht hat (kein definitiver "Aha!" - wenn ich einen bestimmten Moment nennen müsste, würde ich sagen, als ich AJAX für ein Suchvorschlagskript lernte, aber IMO ist das nur willkürlich) aber als ich irgendwann den Unterschied begriff, wurde alles viel einfacher von dort :)
quelle
Als ich endlich die Idee begriff, dass ich jeden Teil der Sprache neu definieren kann, zu was auch immer der Mist, den ich will. In dieser Hinsicht ist es sogar noch leistungsfähiger als C. Wenn mir beispielsweise die Standardfunktion nicht gefällt
toString()
, implementiere ich meine eigene:quelle
Als mir klar wurde, dass Sie eine Eigenschaft für ein Funktionsobjekt festlegen können.
Auch als ich endlich verstand, was der Prototyp war.
quelle
Und der a-ha- Moment, in dem Sie diese Ergebnisse endlich erfassen.
quelle
Aha Moment Nr. 1 für mich: Die Erkenntnis, dass JavaScript, die Sprache, sich von ihrer hauptsächlichen Verwendung unterscheidet: dynamisches HTML und clientseitige Webprogrammierung. Ich wäre mit JavaScript frustriert, wenn ich wirklich mit dem DOM und den Inkompatibilitäten des Browsers frustriert wäre.
Aha moment # 2: Verstehen, dass Vererbung auf viele Arten ausgeführt werden kann. Typische klassenbasierte Vererbung ist nur eine. Es gibt andere, nämlich prototypbasierte (der in JavaScript verwendete Stil).
In Bezug auf # 1 kann ich nicht widerstehen, JavaScript: The Good Parts zu empfehlen . JavaScript wird als eigenständige Sprache behandelt.
quelle
Kein Blockieren und Heben.
quelle
Es ist nur ein Schema mit Syntax.
Das war der Große für mich.
quelle
jQuery war für mich im Grunde der A-ha-Moment. Die Syntax kam mir bekannt vor, nachdem ich viel Erfahrung mit der LINQ / Lambda-Syntax in C # hatte.
quelle