1. Foren
  2. » Kommentare
  3. » Software-Entwicklung
  4. » Alle Kommentare zum Artikel
  5. » Microsoft-Typescript…

Standardkonformes JS?

Anzeige
  1. Thema

Neues Thema Ansicht wechseln


  1. Standardkonformes JS?

    Autor developer 02.10.12 - 10:36

    Also inkompatibel zum Internet Explorer? <duck>

    Benutzer wird von Ihnen ignoriert. Anzeigen

  2. Re: Standardkonformes JS?

    Autor 4x 02.10.12 - 10:42

    Was für JS ist inkompatibel zum IE? Codebeispiele?

    Benutzer wird von Ihnen ignoriert. Anzeigen

  3. Re: Standardkonformes JS?

    Autor developer 02.10.12 - 11:03

    Internet Explorer 9:

    if( undefined === HTMLDocument ){
    alert('wtf');
    }



    1 mal bearbeitet, zuletzt am 02.10.12 11:04 durch developer.

    Benutzer wird von Ihnen ignoriert. Anzeigen

  4. Re: Standardkonformes JS?

    Autor IScream 02.10.12 - 11:46

    developer schrieb:
    --------------------------------------------------------------------------------
    > Internet Explorer 9:
    >
    > if( undefined === HTMLDocument ){
    > alert('wtf');
    > }


    var str = "asd";
    var char = str[0]; //str.charAt(0)

    ;-)

    Benutzer wird von Ihnen ignoriert. Anzeigen

  5. Re: Standardkonformes JS?

    Autor droptable 02.10.12 - 11:50

    HTMLDocument is nicht mehr.
    DOM4 definiert nur noch Document.

    http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html

    MS hat im IE9 quasi nur aufgeräumt.

    Benutzer wird von Ihnen ignoriert. Anzeigen

  6. Re: Standardkonformes JS?

    Autor developer 02.10.12 - 13:26

    > HTMLDocument is nicht mehr.

    wenn du prüfst ob HTMLDocument undefined ist wirft der ie9 eine exception.
    Du kannst nicht prüfen ob HTMLDocument undefined ist, weil HTMLDocument undefined ist.

    Gut man kann die Exception fangen oder auf window['HTMLDocument'] prüfen, aber eine Exception etwas wäre undefined weil man prüft ob es undefined ist... Na ja.



    1 mal bearbeitet, zuletzt am 02.10.12 13:28 durch developer.

    Benutzer wird von Ihnen ignoriert. Anzeigen

  7. Re: Standardkonformes JS?

    Autor IScream 02.10.12 - 13:53

    developer schrieb:
    --------------------------------------------------------------------------------
    > > HTMLDocument is nicht mehr.
    >
    > wenn du prüfst ob HTMLDocument undefined ist wirft der ie9 eine exception.
    >
    > Du kannst nicht prüfen ob HTMLDocument undefined ist, weil HTMLDocument
    > undefined ist.
    >
    > Gut man kann die Exception fangen oder auf window['HTMLDocument'] prüfen,
    > aber eine Exception etwas wäre undefined weil man prüft ob es undefined
    > ist... Na ja.

    deswegen macht man sowas in der regel so:
    if (typeof(HTMLDocument) === "undefined")

    Benutzer wird von Ihnen ignoriert. Anzeigen

  8. Re: Standardkonformes JS?

    Autor developer 02.10.12 - 14:01

    > deswegen macht man sowas in der regel so:
    > if (typeof(HTMLDocument) === "undefined")

    Dass es "Workarounds" gibt hab ich selbst erwähnt.

    Das macht das Verhalten in dem Fall trotzdem nicht besser.

    Benutzer wird von Ihnen ignoriert. Anzeigen

  9. Re: Standardkonformes JS?

    Autor droptable 02.10.12 - 14:07

    Das ist kein Workaround.

    Jede Variable, welche nicht deklariert ist aber lesend angesprochen wird, wirft eine Exception.

    Daher nutzt man entweder `typeof` oder man spricht das Objekt in seinem Eltern-Kontext an um dessen Getter zu nutzen, welcher dir dann auch dein gewünschtes `undefined` zurück liefert.

    if (window.HTMLDocument === undefined) {
    ...
    }

    if (typeof HTMLDocument === "undefined") {
    ...
    }



    2 mal bearbeitet, zuletzt am 02.10.12 14:15 durch droptable.

    Benutzer wird von Ihnen ignoriert. Anzeigen

  10. Re: Standardkonformes JS?

    Autor developer 02.10.12 - 15:11

    > Das ist kein Workaround.

    Ok stimmt. Mein Fehler.

    Mir fällt gerade auf, dass ich undefined nur einem kontext habe, und zwar bei nicht verwendeten aber vorhandenen parametern in Funktionsaufrufen, und da gibt es die Variable ja dann.

    Wieder was gelernt.

    Benutzer wird von Ihnen ignoriert. Anzeigen

  11. Re: Standardkonformes JS?

    Autor redmord 02.10.12 - 15:41

    undefined funktioniert auch dann, wenn die variable später erst deklariert resp. gefüllt wird.

    wirft exception:

    if(foo == undefined) { .... }

    wirft keine exception:

    if(foo == undefined) { var foo = 'bar'; }


    Das hängt damit zusammen, dass der JIT-Compiler die deklaration von variablen immer zum Anfang des Namespaces verschiebt.

    Für den Compiler wird daraus also:

    var foo;
    if(foo == undefined) { foo = 'bar'; }

    Benutzer wird von Ihnen ignoriert. Anzeigen

  12. Re: Standardkonformes JS?

    Autor droptable 02.10.12 - 16:18

    Ein ähnliches Verhalten trifft auf Funktions-Deklarationen zu (nicht Ausdrücke). So kann man Funktionen schon aufrufen/abfragen bevor diese im Verlauf Deklariert wurden - aber nur wenn der Compiler zuvor in der Lage war im selben Code-Block die Deklaration zu verarbeiten.

    foo(); // Funktioniert
    function foo() {} // Zur Übersetzungszeit definierte Funktion

    if (...) {
    bar(); // Exception
    function bar() {} // Zur Laufzeit definierte Funktion
    }

    Manche Dinge sind schon irgendwie komisch gelöst.



    1 mal bearbeitet, zuletzt am 02.10.12 16:25 durch droptable.

    Benutzer wird von Ihnen ignoriert. Anzeigen

  13. Re: Standardkonformes JS?

    Autor scheißregistration 02.10.12 - 16:19

    redmord schrieb:
    --------------------------------------------------------------------------------
    > undefined funktioniert auch dann, wenn die variable später erst deklariert
    > resp. gefüllt wird.
    >
    > wirft exception:
    >
    > if(foo == undefined) { .... }
    >
    > wirft keine exception:
    >
    > if(foo == undefined) { var foo = 'bar'; }
    >
    > Das hängt damit zusammen, dass der JIT-Compiler die deklaration von
    > variablen immer zum Anfang des Namespaces verschiebt.
    >
    > Für den Compiler wird daraus also:
    >
    > var foo;
    > if(foo == undefined) { foo = 'bar'; }

    Für die Leute die danach suchen möchten: nennt sich "variable hoisting".

    Benutzer wird von Ihnen ignoriert. Anzeigen

  14. Re: Standardkonformes JS?

    Autor redmord 02.10.12 - 17:11

    Man darf nicht vergessen: Für den Erstentwurf hatte Brendan Eich nur zwei Wochen Zeit. ^^

    Richtiges Namespacing á la PHP 5.3 würde ich dem Scoping jedoch vorziehen.

    (function($, undefined) { ... })(jQuery)

    Ist für Einsteiger schon ziemlich unverständlich, obwohl es recht elegant einige hausgemachten Probleme erschlägt.

    Auch, dass irgendwie alles mehr oder weniger eine Funktion ist, nervt auch.

    Ich finde den Ansatz von TypeScript grundsätzlich gut. Denn komplexe Objektstrukturen mit Vererbung etc. war für mich bisher ein Graus. CoffeScript war für mich aufgrund der extrem vereinfachten Syntax bisher keine Option.

    Benutzer wird von Ihnen ignoriert. Anzeigen

  15. Re: Standardkonformes JS?

    Autor droptable 02.10.12 - 18:00

    Dem kann ich mich nur anschließen.



    1 mal bearbeitet, zuletzt am 02.10.12 18:01 durch droptable.

    Benutzer wird von Ihnen ignoriert. Anzeigen

  16. Re: Standardkonformes JS?

    Autor Paykz0r 02.10.12 - 23:47

    developer schrieb:
    --------------------------------------------------------------------------------
    > Internet Explorer 9:
    >
    > if( undefined === HTMLDocument ){
    > alert('wtf');
    > }

    Das Beispiel hinkt, weil DOM nicht zu verwechseln mit Javascript ist.
    Wenn man bsw. Rhino oder NodeJS im Backend einsetzt, gibt es auch kein DOM.

    Und wie andere schon erwähnen,
    in top oder window schauen.
    Das ist ein Array. Und arrays geben ein undefined zurück wenn ein Eintrag nicht existiert.

    JS hat ein viel schlechteren ruf als nötig ist.
    Finde ich sehr schade.
    Es hat leider schwächen,
    aber die stärken überwiegen.

    Benutzer wird von Ihnen ignoriert. Anzeigen

Neues Thema Ansicht wechseln


Entschuldigung, nur registrierte Benutzer dürfen in diesem Forum schreiben. Klicken Sie hier um sich einzuloggen

Steve Wilhite: Ehrung für den Erfinder des "Jif"-Formates
Steve Wilhite
Ehrung für den Erfinder des "Jif"-Formates

Steve Wilhite, früherer Mitarbeiter von Compuserve, hat einen Webby Award für die Entwicklung des Grafikformates Gif erhalten. Aus diesem Anlass hat der Erfinder noch einmal auf der korrekten Aussprache beharrt.

  1. Adobe Photoshop Express jetzt auch für Windows 8
  2. World Press Photo Award Wie viel Photoshop verträgt ein Reportagebild?
  3. Animation Motion-Capture-Verfahren ohne Marker

Microsoft: Viren kommen wieder
Microsoft
Viren kommen wieder

Echte Computerviren gibt es in Industrieländern kaum noch. Wer umgangssprachlich von Viren spricht, meint Trojaner, Adware oder Würmer. Doch Microsoft sieht sie vor dem Comeback - in Regionen mit schlechter Internet- und Patch-Versorgung.

  1. Domainrecht Schweizer Switch schaltet Domain wegen Malware ab
  2. Android 32 infizierte Apps aus dem Play Store entfernt
  3. Malware Der Rechner als Bitcoin-Generator

Android: Updates für Google Drive und Chrome
Android
Updates für Google Drive und Chrome

Google hat die Android-Apps Drive und Chrome aktualisiert. Die Google-Drive-App im aktualisierten Erscheinungsbild bringt eine Bildvorschau, eine Scanfunktion und eine Downloadmöglichkeit. Chrome bringt einen Vollbildmodus und eine Verlaufsfunktion innerhalb eines Browsertabs.

  1. Google Ein Cloud-Speicher für alle Dienste
  2. Microsoft Office Web Apps führen Echtzeitzusammenarbeit ein
  3. Extension Office-Dateien direkt in Chrome betrachten

  1. Need for Speed Rivals: Verfolgungsjagden zwischen Cops und Rasern
    Need for Speed Rivals
    Verfolgungsjagden zwischen Cops und Rasern

    Eine offene Spielumgebung, sehr schnelle Autos und spannende Verfolgungsjagden kündigt EA für Need for Speed Rivals an. Das Rennspiel auf Basis der Frostbite-3-Engine erscheint auch für die Next-Gen-Konsole.

  2. Digitimes: Windows-8-Tablets sollen 8 Prozent des Marktes erreichen
    Digitimes
    Windows-8-Tablets sollen 8 Prozent des Marktes erreichen

    Eine Preissenkung bei den Software-Lizenzen hilft Windows 8-Geräten. Ihr Anteil soll auf 10 bis 20 Millionen steigen.

  3. Doc Patch: Das Grundgesetz wird Open Data
    Doc Patch
    Das Grundgesetz wird Open Data

    Der Chaos Computer Club hat das Grundgesetz als Open Data veröffentlicht. Die dafür eingerichtete Plattform steht auch anderen Nutzern offen, die weitere Dokumente aus der Verwaltung dort veröffentlichen sollen.


  1. 21:07

  2. 19:04

  3. 18:57

  4. 18:20

  5. 18:13

  6. 16:57

  7. 16:51

  8. 16:11