Aloha ;)
Mein Punkt ist (und war es von Anfang an): Der Leser muss
document.querySelector('#ausgabe').innerText
an der Stelle gar nicht weiter verstehen. Es muss lediglich nur verwenden.Das beißt sich meiner Meinung nach sehr - erstens mit unserem Motto „Die Energie des Verstehens“, zweitens mit der Art und Weise, wie wir ansonsten Tutorial schreiben. Und ich halte es auch nicht für gut.
ich verstehe ehrlich gesagt nicht so ganz, warum ein "hingeworfenes"
document.write
einfacher oder didaktischer sein soll, als ein "hingeworfenes"document.querySelector('#ausgabe').innerText
.
document.write
ist (wie window.alert
) einfach ein Funktionsaufruf, dem das, was ausgegeben werden soll, mitgegeben wird. Sowohl document.write
als auch window.alert
sind dabei recht „sprechend“ („schreibe ins Dokument“, „melde im Fenster“). Das ist Kost, die sehr einfach zu schlucken und zu verdauen ist. (Übrigens console.log
auch, aber da ist das Problem, dass man dann erstmal die Konsole einführen müsste, sich was für Lesegeräte ohne Konsole überlegen muss ...)
document.querySelector('#ausgabe').innerText =
hat folgendes:
-
ein kryptisches
querySelector
dessen Namensgebung man nur versteht, wenn man weiß, dass das Feature mal von jQuery übernommen wurde, und das nicht für sich spricht -
einen Funktionsaufruf mit einem Argument (das ist die einzige Komplexität, die sich die Methode mit den anderen genannten teilt)
-
einen CSS-id-Selektor, der voraussetzt, dass man CSS vorher gelernt und verstanden hat, und, dass man versteht, dass man hier CSS-Syntax innerhalb von Javascript verwenden kann (ein eher neues Konzept)
-
greift auf eine Eigenschaft eines Node zurück
-
überschreibt diese Eigenschaft mit einem Wert was eine Reaktion des Browsers auslöst (man bedenke, dass das nicht trivial ist - in anderen Sprachen / Kontexten assoziiert man Funktionsaufrufe mit Reaktion, nicht Wertveränderungen!)
Den Satz aus dem Tutorial
Der Rechenweg wird in der Variablen text gespeichert und dann mit document.write ausgegeben.
musste man dann nur in
Der Rechenweg wird in der Variablen text gespeichert und dann mit document.querySelector('#ausgabe').innerText ausgegeben.
ändern und dann auf querySelector verlinken.
Nein, auf keinen Fall! Das durchbricht den Lesefluss und den Wissenserwerb nachhaltig. Der Artikel zu querySelector (der, stimme ich dir zu, verlinkt werden müsste, wenn man es verwendet) strotzt nur so von Dingen, die für den blutigen JS-Anfänger weit über sein Verständnis hinausgehen. Klickt er diesen Link aus Interesse an wird er unter ein Bombardement genommen, bei dem er nachher vielleicht nicht mehr weiß, wo er ursprünglich war. Kann sein, dass das übertrieben klingt, aber wenn das auch nur bei einem Leser passiert ist das schon zuviel. Wir reden hier vom grundlegendsten Grundlagenartikel überhaupt. Ein Artikel, der nichtmal...
Und das HTML-Grundgerüst sollte doch auch bekannt sein.
...HTML voraussetzt oder verwendet.
Und wenn querySelector nicht konsensfähig ist, nehmt alert, aber nicht document.write.
Interessanter Vorschlag. Was wären deiner Meinung nach die Vorteile von window.alert
über document.write
? In der Vergangenheit hat man mMn versucht, um alert
einen möglichst großen Bogen zu machen. Aus gutem Grund, nämlich weil alert
eine Seite inaktiv schaltet und sich in den Vordergrund drängt usw. usf. Auf den ersten Blick erkenne ich den Grund, warum das besser sein soll als document.write
, nicht.
Jedenfalls ist window.alert
für den Grundlagenartikel eine ernstzunehmendere Alternative für document.write
als document.querySelector('#ausgabe').innerText =
.
Grüße,
RIDER