Zum Inhalt springen

Diskussion:JavaScript

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 24. April 2019 um 14:28 Uhr durch PerfektesChaos (Diskussion | Beiträge) (Programmcode falsch?: prima vista: ja, leider). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Letzter Kommentar: vor 5 Jahren von PerfektesChaos in Abschnitt Programmcode falsch?
Diese Diskussionsseite dient dazu, Verbesserungen am Artikel „JavaScript“ zu besprechen. Persönliche Betrachtungen zum Thema gehören nicht hierher. Für allgemeine Wissensfragen gibt es die Auskunft.

Füge neue Diskussionsthemen unten an:

Klicke auf Abschnitt hinzufügen, um ein neues Diskussionsthema zu beginnen.
Archiv
Wie wird ein Archiv angelegt?

Fehler bei Vorlage * Parametername unbekannt (Vorlage:Autoarchiv-Erledigt): "Klein; Mindestbeiträge" Fehler bei Vorlage (Vorlage:Autoarchiv-Erledigt): Der Wert des Parameters Zeigen wurde im Namensraum "Diskussion" mit "Nein" angegeben.

Objekte, „Private“ Eigenschaften, Otto muß sterben

Ich finde ein Beispiel ungeeignet, in dem Tiere getötet werden, nur um ein Element der Sprache zu verdeutlichen. Ich unterrichte JavaScript im Gymnasium und wurde durch eine Schülerin auf diesen Umstand aufmerksam gemacht. Es wird sich doch mitnichten ein neutraleres Beispiel finden lassen, wo Otto nicht sterben muß? Vielen Dank.

var neue_katze = function () {
    var lebensZahl = 7;
    var maunz = function () {
        return (lebensZahl > 0) ? "miau" : "örks";
    };

    // gibt neues objekt zurück
    return {
        toeten: function () {
            lebensZahl -= 1;
            alert(maunz());
        }
    };
};
var otto = neue_katze();
otto.toeten(); // miau

(nicht signierter Beitrag von 217.186.143.203 (Diskussion) 13:03, 30. Aug. 2015 (CEST))Beantworten

Sei Mutig und schlag ein anderes Beispiel vor. -- HerrLock 15:06, 30. Aug. 2015 (CEST)Beantworten

Codebeispiele um Semikolons ergänzen?

Einige der Codebeispiele nutzen die automatische Ergänzung fehlender Semikolons durch den JavaScript-Parser, wobei das aber nicht einheitlich gehandhabt wird. Da das Weglassen von Semikolons von der statischen Codeanalyse in der Regel bemängelt wird, schlage ich vor, einheitlich die Semikolons explizit anzugeben. Meinungen dazu? --Stefan Weil (Diskussion) 19:48, 28. Mai 2016 (CEST)Beantworten

Ja, sehr gern, sollten natürlich vorbildlich sein.
Ich hab jetzt nicht reingeguckt, aber alle Klammern und Semikolonse und so sollten am Platz sein.
Wir präsentieren hier doch nicht das 1990er-Jahre-Gemurkse irgendwelcher „Webdesigner“ kurz vorm Abi.
Insbesondere sollte http://jshint.com/ in der härtesten Einstellung jeden Block absegnen.
LG --PerfektesChaos 21:11, 28. Mai 2016 (CEST)Beantworten
JSHint ist jetzt zufrieden. --Stefan Weil (Diskussion) 22:14, 28. Mai 2016 (CEST)Beantworten

Wurde in ECMAScript 6 nicht der Sprachkern um Klassendefinitionen erweitert? (Klassenlosigkeit)

Wurde in ECMAScript 6 nicht der Sprachkern um Klassendefinitionen erweitert? -> Ist JavaScript seit ES6 "klassenlos?"

Haut rein (nicht signierter Beitrag von 2A02:8071:238A:4100:12C:8CE5:68A7:655 (Diskussion) 02:13, 1. Jun. 2016 (CEST))Beantworten

Das ist so nicht richtig, bzw. irreführend. Die Klassendefinition ist nur Syntaktischer Zucker und bringt keine neuen Funktionalitäten. JS ist nach wie vor Prototypen basiert. Ich schlage vor das "(bis ECMAScript 6)"aus der Einleitung zu entfernen und dafür die Klassensyntax unter Sprachelemente vorzustellen und dabei auch auf dieses wichtige Detail zu erwähnen. Hier die entsprechende Seite im MDN. --TorAc (Diskussion) 23:09, 10. Aug. 2017 (CEST)Beantworten
Sehe ich genauso. Habe mal versucht, die Einleitung klarzustellen. Optimierungen meines Versuchs: gerne!
--JavaScriptKiddie (Diskussion) 08:33, 11. Aug. 2017 (CEST)Beantworten

Vordefinierte Objekte

Muss es in der Passage

JavaScript kennt mehrere eingebaute Objekte, die von ECMAScript definiert werden.
  • Das namenlose globale Objekt, das alle Variablen und Objekte enthält.
  • Object als allgemeiner Prototyp, von dem alle Objekte abgeleitet sind.
  • Function als Prototyp für Funktionen.
...

nicht besser heißen:

JavaScript kennt mehrere eingebaute Objekttypen, die von ECMAScript definiert werden
  • Das namenlose globale Objekt, das alle Variablen und Objekte enthält.
  • Object, wobei Object.protoype als allgemeiner Prototyp fungiert, von dem alle Objekte abgeleitet sind.
...

Natürlich kann man noch darauf hinweisen, dass ein „Objekttyp“ eigentlich eine Klasse ist. Wichtig erscheint mir aber, zwischen cl (===cl.prototype.constructor) und cl.prototype zu unterscheiden, wenn cl für eine Konstruktorfunktion wie Object, Array, ... steht. --JavaScriptKiddie (Diskussion) 09:01, 14. Mär. 2018 (CET)Beantworten

"Skriptsprache"

"JavaScript (kurz JS) ist eine Skriptsprache"

Darf man das heute im Jahre 2018 echt noch so sagen? O.o --Guckstift (Diskussion) 12:32, 28. Jun. 2018 (CEST)Beantworten

Klar. Gegenfrage: Wann soll denn das Jahr gewesen sein, ab dem JS keine Skriptsprache mehr war und warum?
Dass viele Skriptsprachen heutzutage nicht mehr Zeile für Zeile interpretiert werden, sondern die Ausführungseinheit um ein..zwei Größenordnungen effizienter arbeitet (wie, ist ja ein Implementierungsdetail), ändert daran ja nichts. Oder? --RokerHRO (Diskussion) 16:27, 28. Jun. 2018 (CEST)Beantworten

Programmcode falsch?

Ist der Programmcode in der oberen rechten Ecke nicht falsch?

//Beispiel function Programm() { alert('Hello World'); } window.onload = Programm()

Die letzte Zeile führt zu einer sofortigen Ausführung der Funktion "Programm" und der Rückgabewert wird zugewiesen. --Welkensittich (Diskussion) 13:13, 24. Apr. 2019 (CEST)Beantworten

Da hast du leider recht; gut aufgepasst.
Die Klammern müssen natürlich weg; es soll das Funktionsobjekt über seinen symbolischen Bezeichner zugewiesen werden.
Ein schleckiger Name wäre bei der Gelegenheit auch angebracht; Programm ist sehr nichtssagend. Eher beimStart oder beimLaden oder wennBereit.
LG --PerfektesChaos 14:27, 24. Apr. 2019 (CEST)Beantworten