La sintassi JavaScript è la stessa per tutti i browser?

3

Per quanto riguarda l'interazione con il DOM, i diversi browser offriranno metodi e risultati diversi tra loro in un modo o nell'altro.

Ma che ne dici di JavaScript stesso? Tutti i browser (o piattaforme, ad esempio Adobe Reader) implementano la stessa sintassi e il medesimo comportamento?

Aspetti che mi preoccupano particolarmente sono la gestione di oggetti / funzioni e operazioni aritmetiche.

    
posta vemv 28.08.2011 - 09:44
fonte

5 risposte

1

Tutti i browser utilizzati oggi supportano un javascript comune

Javascript è definito dallo standard ECMA-262 , o dalla versione 3, o versione 5. Entrambe le versioni hanno la stessa sintassi - le novità nella versione 5 sono tutte compatibili all'indietro.

Tutti i browser supportano la sintassi e gli oggetti della versione 3. Internet Explorer ha qualche infrazione , ma supporta tutta la sintassi e la semantica di base. Firefox ha alcune estensioni della lingua, ma queste sono disabilitate sulle pagine web e sono disponibili solo per le estensioni.

L'ultima parte della sintassi mancante che è stata vista in un browser era in IE 4.0, che non aveva try / catch / finally. Questo è arrivato in IE 5.0.

Il pericolo più grande di sintassi in cui è ancora possibile eseguire oggi è che IE elabora in modo errato le virgole finali nei letterali degli array e degli oggetti. Assicurati di non averne nessuno, e puoi scrivere javascript cross-browser bene.

    
risposta data 30.09.2011 - 23:05
fonte
5

Diversi browser supportano diversi versioni di JavaScript e versioni diverse di JavaScript hanno modifiche nella loro sintassi. Quindi no, la sintassi non è la stessa, a meno che non si mantenga la versione abbastanza vecchia da essere supportata nella maggior parte dei browser.

Ad esempio, puoi vedere alcuni sintassi avanzata che, per alcuni, è disponibile in JavaScript 1.8 , pubblicato nel giugno 2008 e incompatibile con FF2 e, come al solito, tutte le versioni di IE tranne 9.

    
risposta data 28.08.2011 - 10:10
fonte
3

La versione JavaScript corrente è 1.8.5. JavaScript si è evoluto in molte fasi. Quindi i diversi browser non differiscono solo nei loro modelli DOM, ma anche nella sintassi. Una panoramica per i browser è fornita in Wikipedia . Quindi dovresti fare attenzione quando usi le funzioni avanzate.

    
risposta data 28.08.2011 - 10:13
fonte
3

But how about JavaScript itself? Do all browsers (or platforms e.g. Adobe Reader) implement the same syntax and behavior?

No. Ogni browser supporta una versione diversa di JavaScript. Non solo, eventi differenti versioni degli stessi browser hanno diverse funzionalità JavaScript.

Questo è il modo in cui ci sono ora numerosi modi per garantire la compatibilità cross-browser per la stessa attività JavaScript, che in genere richiede il rilevamento di funzionalità e quindi l'azione basata su di esso.

Una buona pratica per garantire la compatibilità è controllare sempre il rilevamento delle funzionalità piuttosto che il rilevamento della versione per i browser.

    
risposta data 28.08.2011 - 11:53
fonte
2

Ci sono alcuni trucchi da fare con la sintassi di base di Javascript che Internet Explorer può soffocare (potrebbe essere meglio in IE9, ma IE 6/7/8 ha avuto problemi orribili).

Cose come una virgola finale dopo l'ultimo elemento in una matrice (pensa qualcosa come [a, b, c,] , ogni browser la gestirà bene tranne IE.

Anche in questo caso ce ne sono parecchi altri.

    
risposta data 28.08.2011 - 17:13
fonte

Leggi altre domande sui tag