ECMAScript 5 lernen
- Ersteller RobertVox
- Erstellt am
andy_m4
Admiral
- Registriert
- Aug. 2015
- Beiträge
- 8.380
Ich sag mal so, wenn man Version 5 lernt macht man nix falsch. Das ist ja, wenn man so will eine Teilmenge der 6er Version.RobertVox schrieb:Ist es noch heutzutage sinnvoll ECMAScript 5 zu lernen?
Oder ist es besser sich auf ECMAScript 6 und die späteren Versionen zu konzentrieren?
Die wesentliche Ergänzung bei Version 6 ist, dass es nicht mehr nur prototyp-basierte Objektorienterunng gibt, sondern auch Klassen, wie man es von Java her kennt.
Was vielleicht noch einen Blick wert ist, ist Microsofts TypeScript. Das ist zu Javascript kompatibel führt aber viele ECMAScript 6 Sachen und noch ein paar andere Nützlichkeiten ein.
Damit es trotzdem im Browser läuft, wird es direkt nach Javascript kompiliert.
Dabei ist auch gegeben, dass man gängige Javascript-Bibliotheken (wie beispielsweise das sehr verbreitete jQuery) verwenden kann.
Apropos jQuery. Genauso wichtig die die Sprache selbst ist auch ein Blick für Bibliotheken zu haben. Die erleichtern viele Sachen, die man dann nicht mehr "zu Fuß" programmieren muss.
Ob man das brauch ist natürlich primär eine Frage von dem, was man machen will/muss. Speziell im Web kann man Javascript nur schwer aus dem Wege gehen.
Wobei es auch hier Möglichkeiten gibt. Beispielsweise mit GWT. Da programmiert man quasi vollständig seine Webanwendung in Java und GWT sorgt dafür, dass der nötige Javascriptcode für den Browser erzeugt wird.
SergeantSilent
Newbie
- Registriert
- Mai 2018
- Beiträge
- 1
Ich würde hier klar Nein sagen. Der Unterschied ist zwar nicht soooo groß, aber es macht einfach keinen Sinn mehr. ES6 wird heutzutage immer mit babel.js genutzt, sprich ES5 Code wird für entsprechende Browser automatisch mit-erzeugt. Es geht aber nicht in die andere Richtung.
Warum also noch altes Zeug lernen?
Warum also noch altes Zeug lernen?
K
kling1
Gast
lern das aktuelle.. wenn du gerade mit javascript anfängst.. würde ich auch auf jquery verzichten..
andy_m4
Admiral
- Registriert
- Aug. 2015
- Beiträge
- 8.380
Jein. Pauschal kann man das nicht beantworten.Yuuri schrieb:Lern JavaScript. Du lernst auch nicht Java 7, 8 oder Drölf, sondern Java.
Gerade in der Anfangszeit war Java recht volatil und Sachen die vorher noch üblich waren wurden geändert oder waren zumindest deprecated. Auch jetzt mit Java-8 und den Lambdas ändert/vereinfacht sich vieles in der programmierung, so dass es einfach keinen Sinn macht es "in the old way" zu tun, auch wenn das nach wie vor geht.
Und ähnliche Beispiele gibts ja auch in anderen Sprachen. Man denke nur an Python 2 vs. Python 3.
Es macht also schon Sinn zu gucken, was sind meine Anforderungen. Und lern ich da evtl. Zeugs, was eh kein Mensch mehr benutzt. Sicher. Das betrifft jetzt nicht unbedingt immer die Basics. Aber jemand, der schon eine Programmiersprache kann der wird sich nicht lange mit Schleifen und Verzweigungen aufhalten, sondern schon relativ schnell auf solche Sachen stoßen. Deshalb finde ich die Frage durchaus legitim.
Ergänzung ()
Das finde ich ja immer "herrlich", wenn irgendwas gesagt wird ohne es zu begründen. Als ob derjenige "the godfather" alles Wissens ist und was er sagt ist absolut alternativlos und Bedarf schon deshalb keiner Begründung. :-)kling1 schrieb:lern das aktuelle.. wenn du gerade mit javascript anfängst.. würde ich auch auf jquery verzichten..
coolmodi
Lt. Commander
- Registriert
- Apr. 2012
- Beiträge
- 1.974
So viele Unterschiede gibts eh nicht. Wenn man ein kleines Script hat, welches auch in IE funktionieren soll, dann sollte man halt von ES6 absehen. Polyfills lohnen da dann einfach nicht. https://github.com/dnbard/es6-guide
In neuen Projekten (die nicht völlig trivial sind) gibt es eigentlich keinen guten Grund nicht von Anfang an auf Javascript ES6/ES2018 zu setzen. Browserkompatibilität erreicht man indem man mit Babel oder Typescript den modernen code in "altes" Javascript übersetzt, das alle relevanten Browser verstehen.
Gerade wenn man auch mit neueren Frameworks arbeitet wie React zum Beispiel, ist auch vieles an Dokumentation schon mit ES6 Beispielen, da macht es keinen Spaß wenn man das nicht versteht.
Gerade wenn man auch mit neueren Frameworks arbeitet wie React zum Beispiel, ist auch vieles an Dokumentation schon mit ES6 Beispielen, da macht es keinen Spaß wenn man das nicht versteht.
FranzvonAssisi
Admiral
- Registriert
- Dez. 2013
- Beiträge
- 7.428
Klar, aber lernen muss man mmn trotzdem alles, da die ES6-Funktionen das bisherige Paket eben erweitern. Also ist es kein entweder oder, sondern ein: ES5 lernen oder ES5 & ES6 lernen.
Es ist halt so wie bei Java, gibt nen paar neue Sachen, aber mit den neuen alleine wirst du kein Programm schreiben können.
Es ist halt so wie bei Java, gibt nen paar neue Sachen, aber mit den neuen alleine wirst du kein Programm schreiben können.
Yuuri
Fleet Admiral
- Registriert
- Okt. 2010
- Beiträge
- 13.928
Ich glaube du hast mich nicht verstanden. Was ist denn so in Java deprecated? Damit meine ich jetzt speziell keine besondere API, sondern Java selbst. Genau darum ging es mir. Es ist doch total Hupe was ich lerne, denn ich lerne Java. Dass Java 8 ne andere API besitzt als Java in den Anfängen ist doch vollkommen logisch. In PHP hab ich mittlerweile auch keine MySQL Extension mehr und alle mysql_* Funktionen sind rausgeflogen, aber "Ich lerne PHP 5.6" ist doch keine Aussage. Ich lerne "PHP 7" gibt es ebenso wenig, denn dort gibts auch APIs die seit PHP 5 und früher existieren.andy_m4 schrieb:Jein. Pauschal kann man das nicht beantworten.
Gerade in der Anfangszeit war Java recht volatil und Sachen die vorher noch üblich waren wurden geändert oder waren zumindest deprecated.
Was bringt es mir, wenn ich "ES6 lerne" und
Code:
a( x => x.i )
let a = 0
{a,b,c}
Code:
a( function( x ) { return x.i; } )
var a = 0
{a:a,b:b,c:c}
Da kommt mir immer wieder "Ich hab Erfahrung in jQuery" in den Sinn. Toll und beim nächsten Projekt mit Angular/React/Vue/Ember/... fliegst du, weil du komplett von Null anfängst? Nein, du lernst "nebenbei" JS und nicht "jQuery". Und wenn du es nicht übertragen kannst, dann setz dich gefälligst hin und lern JS.
andy_m4
Admiral
- Registriert
- Aug. 2015
- Beiträge
- 8.380
Doch. Habe ich schon.Yuuri schrieb:Ich glaube du hast mich nicht verstanden.
Was nützt Dir das ganze Java ohne diese API? Richtig. Nix. Und gerade bei Java hast Du halt auch viele APIs schon im Standard mit dabei.Yuuri schrieb:Was ist denn so in Java deprecated? Damit meine ich jetzt speziell keine besondere API, sondern Java selbst. Genau darum ging es mir.
Und wie gesagt, wenn Du schon Erfahrung in einer Programmiersprache hast, dann brauchst Du diese Basics des Sprachkerns nicht großartig neu zu lernen. Du liest das einmal und transferierst Dein Wissen was Du schon hast darauf und das wars. Und dann bist Du halt schnell bei APIs und den ganzen anderen etwas komplexeren Kram.
Hatte ich aber eigentlich alles schon geschrieben. Hast Du aber offenbar entweder nicht gelesen, nicht verstanden oder (und dahin tendiere ich) beides.
Klar ist das logisch. Aber ich bin ja nicht, der diesen Fakt ignoriert, sondern Du.Yuuri schrieb:Es ist doch total Hupe was ich lerne, denn ich lerne Java. Dass Java 8 ne andere API besitzt als Java in den Anfängen ist doch vollkommen logisch.
Ach Gottchen. Jetzt versuchst Du noch irgendwelche Beispiele zu konstruieren, um irgendwie damit zu "beweisen" das Du doch recht hast. Sorry, aber auf solche Spielchen hab ich wenig Bock.Yuuri schrieb:In PHP hab ich mittlerweile auch keine MySQL Extension me....
Wenns Dir allein ums Recht behalten geht .... geschenkt.
Ich hab übrigens auch nicht gesagt, dass das generell nicht geht / nicht empfehlenswert, dass man ne alte Version lernt. Ich habe lediglich darauf hinwiesen, dass man das so pauschal nicht sagen kann und es vom konkreten Fall abhängt.
Und Dein Java-Beispiel, woran Du das dann belegen wolltest, war dann zudem auch noch ungünstig gewählt.
Alles in allem aber kein Grund hier den Macker raushängen zu lassen. :-)
new Account()
Banned
- Registriert
- Mai 2018
- Beiträge
- 7.198
Also ich hab ja C++11 gelernt und nicht C++98 

andy_m4
Admiral
- Registriert
- Aug. 2015
- Beiträge
- 8.380
Das ist doch uralt. Zwischen dem und C++98 liegen 87 Zwischenversionen. Da hat sich EINIGES getan, mein Lieber. :-)new Account() schrieb:Also ich hab ja C++11 gelernt und nicht C++98![]()
new Account()
Banned
- Registriert
- Mai 2018
- Beiträge
- 7.198
Genau darauf wollte ich hinaus.
ECMAScript 2015 ist eine Erweiterung von ES5 und kein kompletter Ersatz. Von daher heißt es nicht entweder ES5 oder ECMAScript 2015, sondern beides lernen.
Meiner Meinung nach spricht ja auch nichts dagegen die Syntax und neue Features zu nutzen, aber das setzt trotzdem voraus, dass man eine solide Basis bezüglich der Grundkonzepte besitzt.
Meiner Meinung nach spricht ja auch nichts dagegen die Syntax und neue Features zu nutzen, aber das setzt trotzdem voraus, dass man eine solide Basis bezüglich der Grundkonzepte besitzt.
Yuuri
Fleet Admiral
- Registriert
- Okt. 2010
- Beiträge
- 13.928
Fein, jetzt nenn mir die Standard API von JavaScript. Und nenn mir jetzt bitte keinen Browser Hersteller oder Node...andy_m4 schrieb:Was nützt Dir das ganze Java ohne diese API? Richtig. Nix. Und gerade bei Java hast Du halt auch viele APIs schon im Standard mit dabei.
andy_m4 schrieb:Und wie gesagt, wenn Du schon Erfahrung in einer Programmiersprache hast, dann brauchst Du diese Basics des Sprachkerns nicht großartig neu zu lernen.
Code:
function( foo, bar ) { return foo || bar || 5; }
Code:
Number.prototype.print = function() { console.log( this ); }
var a = 5,
b = 10
var c = a + b
c.print()
Code:
Number.prototype.print = function() { console.log( this ); }
var a = 5,
b = 10
(a+b).print()
Code:
TypeError: 10 is not a function
Code:
Number.prototype.print = function() { console.log( this ); }
var a = 5,
b = 10
;(a+b).print()
Anderes Beispiel:
Code:
let π = 3.14159
let n = π * 2
n.print()
let ੴ = "test"
console.log( ੴ )
Und jetzt red bitte nochmal was von "Standard API"... Die Sprache selbst hat bereits viel zu bieten und extreme Eigenheiten. Aber das ES6 Tutorial, welches Prototyping behandelt, kannst du mir bestimmt auch gleich nennen...
Ich hab keine Ahnung welchen Stand der TE hat und einfach zu sagen "ach lern das Neueste", ist extrem daneben (bei JS besonders), denn jede Sprache schleppt "Altlasten" (= nicht aktuellste Version) mit. Vielleicht sollte er erstmal das "normale JS" lernen, statt sich sofort an ES6 Features zu setzen, die in vielerlei Hinsicht nur Syntactic Sugar sind (Default parameters, variadische Parameter, Spread operator, Template strings, Array destructuring, Object shorthands, for .. of .., Arrow functions uvm.).
In welchem C++11 Tutorial werden Calling Conventions behandelt? Die gehören genauso zu C++ wie C++98. Schön wenn du "C++11 gelernt hast", davon allein läuft aber kein einziges Programm.new Account() schrieb:Also ich hab ja C++11 gelernt und nicht C++98![]()
new Account()
Banned
- Registriert
- Mai 2018
- Beiträge
- 7.198
Worauf möchtest du genau hinaus? Ich komm jetzt nicht ganz mit. Eventuell könntest du deine Schlussfolgerungen noch einmal genauer erläutern.Yuuri schrieb:In welchem C++11 Tutorial werden Calling Conventions behandelt? Die gehören genauso zu C++ wie C++98. Schön wenn du "C++11 gelernt hast", davon allein läuft aber kein einziges Programm.
andy_m4
Admiral
- Registriert
- Aug. 2015
- Beiträge
- 8.380
Also noch mal, weil Du es immer noch nicht begriffen zu haben scheinst.Yuuri schrieb:Fein, jetzt nenn mir die Standard API von JavaScript. Und nenn mir jetzt bitte keinen Browser Hersteller oder Node...
Ich bezog mich auf Java (steht sogar in dem Zitat von das Du gemacht hast) und das auch nur, weil DU Java zur Sprache gebracht hast.
So und jetzt les Dir die Postings von mir aus noch mal in Ruhe durch und wenn Du dann antworten willst, passt es ja vielleicht endlich mal zu dem was ich schrieb.
Ansonsten gehe ich davon aus, dass wir bei der Diskussion nicht zueinander finden und da macht es wenig Sinn diese fortzuführen. Denn jetzt zum dritten Mal zu erklären, dazu fehlt mir dann doch die Motivation.
Ähnliche Themen
- Antworten
- 62
- Aufrufe
- 3.066
- Antworten
- 27
- Aufrufe
- 2.489