Perché non sono presenti riferimenti JavaScript UFFICIALI? [chiuso]


90

Ho provato a cercare un riferimento JavaScript, ma non ce n'è nessuno disponibile. Le due migliori fonti suggerite sono MDN (Mozilla Developer Network) e W3Schools.

Perché?


54
Evita w3schools; il suo materiale JS tende ad essere estremamente povero, IMHO.
NickFitz


9
Questo è un po 'un commento casuale, ma personalmente penso che tutti i browser dovrebbero eliminare tutte le bastardizzazioni Javascript / Jscript e implementare jQuery in modo nativo. :)
DisgruntledGoat

14
jQuery sfondi sul DOM, ma in realtà non sostituisce JavaScript.
Rob il

2
@huy MDN, non MDC o MDE
maan81

Risposte:


63

Non è che ci sia una versione JavaScript ufficiale. Tutti i browser hanno creato il proprio motore JavaScript, alcuni usano lo stesso. Ma soprattutto Internet Explorer ha una sua versione che non supporta molto di ciò che supportano gli altri browser, rendendo molto difficile fare un riferimento JavaScript generale.

Modifica: anche
se so che esiste uno standard ECMA ufficiale e un team di sviluppo, il punto è che non ha molta importanza finché i browser (Internet Explorer) non sono all'altezza. Alla fine della giornata, i client vogliono che JavaScript funzioni anche per Internet Explorer. A loro non importa degli standard ECMA, vogliono solo che funzioni. È qui che entrano in gioco le librerie JavaScript, ma questa è un'altra storia.

Sono gli stessi problemi con HTML e CSS, non possiamo utilizzare questi strumenti per lo sviluppo attivo fino a quando:

  • Tutti i browser li supportano.
  • Forniamo ai browser il codice per consentire loro di supportarlo.
  • Va bene, non funziona in tutti i browser.

Edit2:
Internet Explorer si sta avvicinando alla tomba con il nuovo progetto browser di Microsoft: Edge. Questo, tuttavia, non cambia davvero il quadro generale. Abbiamo ancora molto se diversi browser dobbiamo supportare. Gli sviluppatori cercano costantemente di spingere i confini di ciò che è possibile. Ciò significa che spesso abbiamo questo problema, alcune versioni del browser che vogliamo supportare non supportano alcune funzionalità dello standard (che di solito è un po 'fluido), il che significa che dobbiamo fare qualche soluzione alternativa o utilizzare framework che implementano il built mancante in caratteristiche.


Capisco, quindi diversi browser hanno la propria implementazione secondo lo standard ECMA-262 che Michael ha menzionato sopra?
huy

3
@huy: sì - con diversi livelli di supporto / diverse interpretazioni di quello standard, purtroppo ...
Andrzej Doyle,

1
-1, v'è uno standard ufficiale JavaScript: si chiama ECMAscript e c'è un organismo ufficiale alle spalle: en.wikipedia.org/wiki/Ecma_International
Hasen

Non sono sicuro del motivo per cui hai individuato Internet Explorer come peggiore nel supportare lo "standard" ECMA come qualsiasi altro browser.

5
@ ראובן: Perché è / era. Per molto tempo IE non solo ha avuto molti bug gravi che altri browser non avevano, ma mancava anche di funzionalità importanti che avevano altri browser. Tuttavia, IE8 e 9 hanno recuperato molto, quindi la situazione sta cambiando. Ma per molti anni IE è stato orribile, mentre gli altri browser hanno avuto un buon supporto ECMAScript. Inoltre, ECMAScript è uno standard. Non sono sicuro del motivo per cui lo metti tra virgolette.
Pauan

28

Puoi provare con il sito ufficiale ECMAscript,

http://www.ecmascript.org/

ma la cosa utile è in realtà l'implementazione di ogni browser.

Mi piace molto questo cheatsheet dalla Bibbia JavaScript di Danny Goodman:

http://media.wiley.com/product_ancillary/12/04705269/DOWNLOAD/9780470526910_Appendix_A.pdf


Quel cheat sheet è morto. Potrei suggerire caniuse.com?
Grinn

Grazie, mi sono collegato al nuovo collegamento e ho spiegato un po 'di cosa si trattava. Grazie per il testa a testa!
Victor

Bene, lo controllerò.
Grinn

22

Direi che questo è "ufficiale": https://developer.mozilla.org/en/JavaScript

Hai anche la specifica del linguaggio ECMAScript, edizione 5.1 (o come PDF , la specifica definitiva) .

E da Microsoft: JavaScript Language Reference : "Questa documentazione spiega l' implementazione Microsoft di JavaScript , che è conforme alla specifica del linguaggio ECMAScript 5a edizione . Fornisce inoltre funzionalità aggiuntive che non sono incluse negli standard Ecma."


8
IE non ha un motore JavaScript: implementa invece JScript (che è ampiamente compatibile). msdn.microsoft.com/en-us/library/yek4tbz0%28VS.85%29.aspx sembra il riferimento ufficiale per questo.
Quentin,

3
Hmm ... developer.mozilla è molto utile, ma non lo definirei "ufficiale". La specifica del linguaggio ECMAScript è più vicina a "ufficiale".
Steve Harrison,

4
La specifica del linguaggio ECMAScript è il riferimento ufficiale per ECMAScript. JavaScript è un superset di ECMAScript, è stato creato da Netscape e Mozilla ha ereditato MDC da Netscape (sebbene il nome sia cambiato da allora)
Quentin

+1 per lo standard ECMAScript.
Jason S,

@Quentin - È interessante notare che il titolo del collegamento MSDN a cui si fa riferimento ora è "Riferimento JavaScript" . Tuttavia, l'articolo di MSDN "JScript (ECMAScript3)" afferma: "JScript è l'implementazione Microsoft della specifica del linguaggio ECMA 262 (ECMAScript Edition 3). Con solo poche eccezioni minori (per mantenere la compatibilità con le versioni precedenti), JScript è un'implementazione completa di lo standard ECMA. " .
DavidRR

8

Se stai usando ECMAScript per il web (che il 99,9% delle persone è), allora al di là delle basi sintattiche del linguaggio (trattate nella specifica ECMA-262 menzionata sopra), quello che probabilmente stai cercando è un riferimento DOM - che è l'API ECMAScript utilizzata per interagire con i documenti Web.

Sono molto sorpreso che nessuno abbia mai menzionato l'API DOM. L'attuale standard W3C DOM è qui: http://www.w3.org/TR/DOM-Level-2-Core/

(btw, per quanto riguarda la confusione dei nomi - ECMAScript è il nome dello standard ufficiale, e "Javascript" e "JScript" sono Netscape e i "fork" proprietari di Microsoft)


3

C'è un riferimento ufficiale, semplicemente non è in un formato molto conveniente. È la specifica ECMA-262 . È un unico documento PDF molto grande, invece di un insieme di pagine HTML ricercabili.


3

Qualsiasi revisione delle pagine JavaScript su MDC da parte di un membro del team di documentazione di Mozilla (come Eric Shepherd ) è ufficiale. JavaScript è ufficialmente mantenuto da Mozilla, quindi solo la documentazione di Mozilla è ufficiale. Gli unici motori che supportano JavaScript sono attualmente realizzati da Mozilla e ogni altro motore implementa ECMAScript. JavaScript ed ECMAScript hanno alcune differenze (ad esempio, la letdichiarazione awesome ).


3

È molto difficile avere un riferimento "ufficiale" fintanto che ci sono implementazioni (in tutti i browser) e c'è una specifica (ECMAScript) ma nessun test di conformità delle implementazioni rispetto alle specifiche.

Ora, però, abbiamo la suite di conformità EMCAScript 5 su http://es5conform.codeplex.com/ e sembra esserci un consenso sul fatto che le implementazioni di ECMAScript si avvicineranno, rendendo ECMAScript più probabile che sia il riferimento ufficiale per il linguaggio.


2

Trovo i documenti JavaScript della vecchia scuola Netscape 4 molto utili per questo scopo. Sebbene siano ovviamente totalmente obsoleti e alcune delle funzionalità DOM in essi come i livelli sono ormai lontane, per le basi del linguaggio sono davvero solide.

Questo perché prima dei giorni della supremazia di IE e della standardizzazione ECMA, JavaScript di Netscape era il JavaScript definitivo. Altri browser dovevano praticamente implementare esattamente ciò che vedi in quei vecchi documenti.

Sono anche molto più facili da leggere rispetto al documento ECMA-262, che anche per gli standard dei documenti standard è un orrore assoluto.


1

Citazione di Wikipedia:

Inizi a Netscape

Nel novembre 1996, Netscape ha presentato JavaScript a Ecma International ...

JavaScript è ufficialmente gestito dalla Mozilla Foundation ...

Quindi, secondo me, l'ECMA è lo standard e Mozilla è quello ufficiale.


0

Con "ufficiale", penso che tu intenda "scritto dalle persone responsabili di JavaScript".

Sto solo speculando qui in realtà, ma le persone responsabili di JavaScript (l'ECMA) non ci guadagnano direttamente e probabilmente non hanno particolari abilità nello scrivere documentazione di riferimento. Quindi non hanno né l'incentivo né la capacità di scrivere un buon riferimento.

Personalmente, mi piace JavaScript: the Definitive Guide di O'Reilly. C'è una sesta edizione in uscita a novembre.


2
Sì. Sun possiede il marchio per JavaScript, ma lo ha concesso in licenza a Netscape. Oracle ha acquistato Sun, quindi ora Oracle possiede il marchio (lo concede ancora in licenza a Mozilla). HTML e CSS sono definiti dal W3C, quindi è una questione diversa. Il motore JS in Firefox contiene molte funzionalità proprietarie (e fantastiche) che non si trovano in nessun altro browser. Il creatore di JavaScript (Brendan Eich) fa parte del comitato ufficiale ECMAScript e lavora anche per Mozilla.
Pauan

1
Inoltre, nota questo link: en.wikipedia.org/wiki/ECMAScript#Dialects Firefox ha quello che è noto come "JavaScript 1.8.5" che come già accennato contiene molte funzionalità avanzate non presenti in altri browser come la destrutturazione / comprensione di oggetti / array , generatori / iteratori, blocchi / istruzioni, ecc. Notare anche la seconda nota a piè di pagina in quel collegamento, che dice "Mozilla gestisce la versione ufficiale di JavaScript. La maggior parte delle implementazioni non Mozilla che rivendicano la" conformità "JavaScript in realtà non supportano la maggior parte delle estensioni JavaScript; piuttosto, hanno come target ECMA-262, edizione 3. "
Pauan

1
Noterò che ECMAScript è diverso da JavaScript. ECMAScript è uno standard definito da Ecma. I browser di solito sono abbastanza bravi nel supportare lo standard ECMAScript e quando la maggior parte delle persone dice "JavaScript" ciò che realmente intende è ECMAScript. È un peccato che la situazione e la terminologia siano così confuse, ma è così. Quindi, per la maggior parte, la definizione informale di JavaScript è "qualunque cosa facciano i browser", ma ufficialmente Mozilla ne è effettivamente responsabile.
Pauan

1
Ciò significa che qualsiasi domanda che richiede un "riferimento JavaScript ufficiale" è troppo vaga per rispondere in modo accurato. Hai lo standard ECMAScript ufficiale, le effettive implementazioni di JavaScript nei browser, l'MDC (che copre l'implementazione JavaScript ufficiale in Firefox) e poi ovviamente la documentazione non ufficiale molto popolare come w3schools. Sono tutti utili, quindi non esiste un riferimento "singolo corretto" come, ad esempio, per Python.
Pauan

2
(forse avrei dovuto
postarlo

-1

Mi piace molto l'apidoc di Daniel Krook , anche se potrebbe utilizzare alcune spiegazioni ed esempi. Mi piacerebbe davvero vedere un mashup di krook w3school.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.