humpdi: javascript konstante und ie7?

frage warum bezeichnet mir der internetexplorer(7) meine javascript-konstanten-definition als syntax-error, der mozilla hingegen nimmt sie ohne murren hin.

const TT0001 = '****string****';

bitte um hilfe

  1. Hallo,

    frage warum bezeichnet mir der internetexplorer(7) meine javascript-konstanten-definition als syntax-error, der mozilla hingegen nimmt sie ohne murren hin.

    Es gibt keine Konstanten in JavaScript (ECMAScript). Die Frage ist vielmehr, warum Mozilla sie hinnimmt: Nämlich weil const eine proprietäre Mozilla-Erfindung ist, die m.W. sonst kein Browser unterstützt.

    Mathias

    1. Hallo,

      frage warum bezeichnet mir der internetexplorer(7) meine javascript-konstanten-definition als syntax-error, der mozilla hingegen nimmt sie ohne murren hin.

      Es gibt keine Konstanten in JavaScript (ECMAScript).

      Das möchte ich bezweifeln. In der <http://de.selfhtml.org/javascript/sprache/reserviert.htm#uebersicht@title=Übersicht reservierter Wörter> taucht auch „const“ auf - mit dem Hinweis, dass dies zu JavaScript 1.5 gehört.

      So richtig habe ich den Sinn von Konstanten aber noch nicht begriffen. Welchen Vorteil haben die gegenüber Variablen?

      mfg. Daniel

      1. Hallo,

        Es gibt keine Konstanten in JavaScript (ECMAScript).

        Das möchte ich bezweifeln. In der <http://de.selfhtml.org/javascript/sprache/reserviert.htm#uebersicht@title=Übersicht reservierter Wörter> taucht auch „const“ auf - mit dem Hinweis, dass dies zu JavaScript 1.5 gehört.

        Reservierte Wörter bestehen aus verwendeten Bezeichnern sowie aus noch nicht verwendeten, für die Zukunft reservierten Bezeichnern. ECMAScript definiert const als solchen.

        const gehört zu Core JavaScript 1.5, einer - vom ECMAScript-Kern abgesehen - proprietären Spezifikation von Netscape, implementiert in Gecko bzw. Netscape 6. Das steht in SELFHTML - es wird nur nicht klar, was bedeutet »ab JavaScript-Version 1.5«. »JavaScript« ist eine zunächst einmal proprietäre Spezifikationsreihe von Netscape, die in keinster Weise Normativität besitzt, sondern mehr oder weniger freiwillig von anderen Browserherstellern implementiert wird. Standardisiert sind nur ECMAScript und das DOM, und in ECMAScript ist const ausdrücklich ohne Bedeutung, aber reserviert, darf also nirgends als Bezeichner verwendet werden.

        Mathias

        1. Hallo,

          »JavaScript« ist eine zunächst einmal proprietäre Spezifikationsreihe von Netscape, die in keinster Weise Normativität besitzt, sondern mehr oder weniger freiwillig von anderen Browserherstellern implementiert wird.

          OK, das wusste ich nicht. Ich dachte immer, JavaScript bis v1.5 könnte man als Standard ansehen…

          […] und in ECMAScript ist const ausdrücklich ohne Bedeutung, aber reserviert, darf also nirgends als Bezeichner verwendet werden.

          Was bringt das eigentlich? Wenn man „const“ schon reserviert, könnte man ihm dann nicht auch gleich eine Bedeutung geben?

          mfg. Daniel

    2. Hallo,

      Es gibt keine Konstanten in JavaScript (ECMAScript). Die Frage ist vielmehr, warum Mozilla sie hinnimmt: Nämlich weil const eine proprietäre Mozilla-Erfindung ist, die m.W. sonst kein Browser unterstützt.

      Inwiefern man von prorietär sprechen kann ist nicht so genau zu sagen. Mozillas JavaScript-Engine wird von Brendan Eich geplegt, seines Zeichens JavaScript-Erfinder.

      Nicht zu vergessen, dass Firefox 2.0 inzwischen JavaScript 1.7 implementiert hat.

      Gruß;

      1. Hallo,

        Es gibt keine Konstanten in JavaScript (ECMAScript). Die Frage ist vielmehr, warum Mozilla sie hinnimmt: Nämlich weil const eine proprietäre Mozilla-Erfindung ist, die m.W. sonst kein Browser unterstützt.

        Inwiefern man von prorietär sprechen kann ist nicht so genau zu sagen. Mozillas JavaScript-Engine wird von Brendan Eich geplegt, seines Zeichens JavaScript-Erfinder.

        Unilaterale Entscheidungen von einzelnen Browserherstellern, ob dort nun der ursprüngliche Spracherfinder angestellt ist oder nicht, sind per definitionem proprietär - was soll proprietär sonst heißen. Sie wurden nicht mit anderen Herstellern über ein drittes Gremium abgestimmt, nicht öffentlich diskutiert und sie werden faktisch auch nicht von anderen Herstellern implementiert.

        Nicht zu vergessen, dass Firefox 2.0 inzwischen JavaScript 1.7 implementiert hat.

        Die Erweiterungen durch JavaScript 1.6 und 1.7 sind das beste Beispiel für eine proprietäre Weiterentwicklung.

        Mathias

        1. Hallo,

          Unilaterale Entscheidungen von einzelnen Browserherstellern, ob dort nun der ursprüngliche Spracherfinder angestellt ist oder nicht, sind per definitionem proprietär - was soll proprietär sonst heißen. Sie wurden nicht mit anderen Herstellern über ein drittes Gremium abgestimmt, nicht öffentlich diskutiert und sie werden faktisch auch nicht von anderen Herstellern implementiert.

          Proprietär war natürlich richtig gewählt. Ich beende die Dikussion besser wegen Unwissenheit und setze mich stattdesen nun genauer mit dem unterschied Java- und ECMAScript auseinander.

          Gruß;

        2. Hallo Mathias,

          Unilaterale Entscheidungen von einzelnen Browserherstellern, ob dort nun der ursprüngliche Spracherfinder angestellt ist oder nicht, sind per definitionem proprietär - was soll proprietär sonst heißen. Sie wurden nicht mit anderen Herstellern über ein drittes Gremium abgestimmt

          Const ist ein Resultat um die seit Jahren existierenden Bemühungen der Weiterentwicklung von ECMAScript und findet sich in dieser Form auch implementiert in auf ECMAScript basierenden Sprachen ActionScript 3.0 und in JScript.NET. Und die Definition von const findet sich auch in der geplanten vierten Edition von ECMAScript.

          ... nicht öffentlich diskutiert ...

          ECMAs Politik ist in der Hinsicht merkwürdig, ja, aber vielleicht ist das ein Nebeneffekt dieser von Herstellern dominierten „Standardisierungsorganisation“.

          ... und sie werden faktisch auch nicht von anderen Herstellern implementiert.

          Siehe oben. Bei den anderen Herstellern von Browsern, konkret Opera und Apple, wundert mich aber auch deren Lethargie in der Hinsicht auf ECMAScript.

          Tim

          1. Hallo,

            Const ist ein Resultat um die seit Jahren existierenden Bemühungen der Weiterentwicklung von ECMAScript

            Das hier diskutierte const wurde im Jahr 2000 von Netscape in JavaScript 1.5 aufgenommen und im Mozilla implementiert, es ist insofern kein »Resultat« der Bemühungen, sondern ging ihnen geschichtlich voraus.

            und findet sich in dieser Form auch implementiert in auf ECMAScript basierenden Sprachen ActionScript 3.0 und in JScript.NET.

            Klar - ActionScript 3 und JScript.NET sind andere Baustellen, selbst proprietär und mit ECMAScript Edition 3 inkompatibel.

            Und die Definition von const findet sich auch in der geplanten vierten Edition von ECMAScript.

            Was nichts daran ändert, dass const geschichtlich gesehen eine noch nicht standardisierte Erfindung ist, denn Mozilla implementierte const nicht, um dieser ECMAScript Edition 4 vorzugreifen (wer weiß, vielleicht diesem Entwurf, aber klar wird das nicht).

            ... nicht öffentlich diskutiert ...

            ECMAs Politik ist in der Hinsicht merkwürdig, ja, aber vielleicht ist das ein Nebeneffekt dieser von Herstellern dominierten „Standardisierungsorganisation“.

            Die Arbeitsgruppe hat ja durchaus eine öffentliche Mailingliste. (Auch wenn ich sie gerade nicht wiederfinde.)

            ... und sie werden faktisch auch nicht von anderen Herstellern implementiert.

            Siehe oben. Bei den anderen Herstellern von Browsern, konkret Opera und Apple, wundert mich aber auch deren Lethargie in der Hinsicht auf ECMAScript.

            ECMAScript Edition 3 ist halt eine zufriedenstellende Grundlage. Einen neuen Standard zu erarbeiten bringt kurzfristig wenig, lieber beschäftigen sie sich aktiv mit der Weiterentwicklung der »Client-Side« anstatt dem »Core«. Die Komplexität, die seit kurzem in die JavaScript-Programmierung gekommen ist, baut sich sowieso eigene Grundlagen auf, die die Unzulänglichkeiten von ECMAScript ausgleichen. Daher besteht aus meiner Sicht auch keine dringende Notwendigkeit für die Browserhersteller.

            Mathias