2009-10-22 19 views
72

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

Perché?

+44

Evitare w3schools; il suo materiale JS tende ad essere estremamente povero, IMHO. – NickFitz

+0

Che MDE? collegamento per favore? – hasen

+1

Scusate volevo dire MDC; https://developer.mozilla.org/en/About_JavaScript – huy

risposta

55

Non è come se esistesse una versione JavaScript ufficiale. Tutti i browser hanno creato il proprio motore JavaScript, alcuni utilizzano lo stesso. Ma soprattutto Internet Explorer ha una sua versione che non supporta molto ciò che gli altri browser supportano, rendendo molto difficile creare un riferimento JavaScript generico.

Edit:
Mentre So che c'è uno standard ECMA ufficiale e team di sviluppo, il mio punto è che non importa il tempo che i browser (Internet Explorer) non esserne all'altezza. Alla fine della giornata, i clienti vogliono che JavaScript funzioni anche su Internet Explorer. Non si preoccuperanno degli standard ECMA, vogliono solo che funzioni. È qui che entrano in scena le librerie JavaScript, ma questa è un'altra storia.

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

  • Tutti i browser li sostengono.
  • Forniamo ai browser il codice per farglielo supportare.
  • Va bene, non funziona su tutti i browser.

Edit2:
Internet Explorer si sta avvicinando alla tomba con il nuovo progetto del browser di Microsoft: Edge. Questo, tuttavia, non cambia davvero l'immagine complessiva. Abbiamo ancora molti browser diversi che dobbiamo supportare.Gli sviluppatori cercano costantemente di superare i limiti 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 o utilizzare framework che implementano il funzionalità incorporate mancanti.

+0

Vedo, così diversi browser hanno la propria implementazione secondo lo standard ECMA-262 che Michael ha menzionato sopra? – huy

+3

@hu: sì - con diversi livelli di supporto per/varianti interpretazioni di quello standard, purtroppo ... –

+1

-1, Ci * è * uno standard Javascript ufficiale: si chiama ECMAscript e c'è un corpo ufficiale dietro di esso: http://en.wikipedia.org/wiki/Ecma_International – hasen

18

, direi che questo è il "ufficiale": https://developer.mozilla.org/en/JavaScript

Hai anche la ECMAScript Language Specification, 5.1 Edition(o come PDF, le specifiche definitive).

E da Microsoft: JavaScript Language Reference: "Questa documentazione spiega l'implementazione Microsoft di JavaScript, che è compatibile con l'ECMAScript 5th Edition specifica lingua Esso fornisce inoltre funzionalità aggiuntive che non sono inclusi negli Standard Ecma.".

+0

Anche per IE? :) – Victor

+7

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

+1

Hmm ... https: //developer.mozilla/ è molto utile, ma non lo chiamerei "ufficiale". La specifica della lingua ECMAScript è più vicina a "ufficiale". –

27

Si può provare con il sito ufficiale ECMAscript,

http://www.ecmascript.org/

ma la cosa utile è in realtà l'attuazione di ciascun browser.

mi piace questo cheatsheet da Danny Goodman Bibbia JavaScript molto:

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

+0

Quel cheat sheet è morto. Posso suggerire caniuse.com? – Grinn

+0

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

+0

Bello, lo controllerò. – Grinn

2

V'è un riferimento ufficiale, semplicemente non è in un formato molto conveniente. È la specifica ECMA-262. È un documento PDF singolo, molto grande, invece di un set ricercabile di pagine HTML.

2

Trovo che la vecchia scuola Netscape 4 JavaScript docs sia molto utile per questo scopo. Anche se sono ovviamente completamente obsoleti, e alcune delle funzionalità del DOM in essi come Layer sono finite da tempo, per le basi del linguaggio sono davvero solide.

Questo perché prima dei tempi della supremazia IE e della standardizzazione ECMA, il codice JavaScript di Netscape era il codice JavaScript definitivo. Altri browser hanno dovuto implementare esattamente ciò che vedete 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 vero orrore.

2

Qualsiasi revisione di JavaScript pages on MDC da parte di un membro del team di documentazione Mozilla (come Eric Shepherd) è ufficiale. JavaScript è ufficialmente gestito 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 e ECMAScript presentano alcune differenze (ad esempio, l'impressionante dichiarazione let).

2

È molto difficile avere un riferimento "ufficiale" purché vi siano implementazioni (in tutti i browser) e vi sia una specifica (ECMAScript) ma nessun test di conformità delle implementazioni rispetto alle specifiche.

Ora abbiamo la suite di conformità EMCAScript 5 al numero http://es5conform.codeplex.com/ - e sembra esserci un consenso sul fatto che le implementazioni di ECMAScript si avvicinino, rendendo ECMAScript più probabile il riferimento ufficiale per la lingua.

6

Se si utilizza ECMAScript per il Web (che rappresenta il 99,9% delle persone), quindi oltre alle sintattiche di base della lingua (trattate nella specifica ECMA-262 di cui sopra), probabilmente si sta cercando un riferimento DOM - che è l'API ECMAScript utilizzata per interagire con i documenti Web.

Sono molto sorpreso che nessuno abbia menzionato DOM api sofar. Attuale standard W3C DOM è qui: http://www.w3.org/TR/DOM-Level-2-Core/

(a proposito, come per la confusione di denominazione - ECMAScript è il nome dello standard ufficiale, e "Javascript" e "JScript" sono Netscape e "forchette" di Microsoft proprietarie)

0

Mi piace molto lo Daniel Krook's apidoc, anche se potrebbe usare alcune spiegazioni ed esempi. Mi piacerebbe molto vedere un krook w3school mashup.

1

Per "ufficiale", penso che intendiate "scritto dai responsabili di JavaScript".

Solo speculando qui davvero, ma i responsabili di JavaScript (l'ECMA) non ne ricavano direttamente alcun profitto e probabilmente non hanno particolari competenze nella stesura della documentazione di riferimento. Quindi non hanno né l'incentivo né la capacità di scrivere un buon riferimento.

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

+0

In realtà, i responsabili di JavaScript sarebbero Netscape (ora Mozilla), e fanno una buona documentazione: l'MDC. Sono d'accordo con te sul fatto che lo standard ECMAScript sia scarso se stai cercando di imparare JavaScript, però. – Pauan

+0

@Pauan: Mozilla è responsabile per JavaScript? Non è più come HTML e CSS, dove i produttori di browser in generale sono collettivamente responsabili per questo? O Mozilla è in realtà l'unica organizzazione che spinge in avanti il ​​linguaggio (al contrario delle interfacce DOM come quelle trovate in HTML5)? (Chiedo solo perché non ho familiarità con la situazione, ho abbastanza problemi a far funzionare il mio codice JavaScript senza preoccuparmi della mia bella testa con cose nuove nel linguaggio principale.) –

+2

Sì, lo sono. Sun possiede il marchio commerciale per JavaScript, ma lo ha concesso in licenza a Netscape. Oracle ha acquistato Sun, quindi ora Oracle possiede il marchio (lo hanno ancora concesso in licenza a Mozilla). HTML e CSS sono definiti dal W3C, quindi è una questione diversa. Il motore JS di Firefox contiene molte caratteristiche 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

0

citazione di Wikipedia:

inizi a Netscape

Nel novembre 1996, Netscape presentato Javascript per Ecma International ...

JavaScript è ufficialmente gestito da Mozilla Foundation ...

Quindi, a mio parere, l'ECMA è lo standard e Mozilla è quello ufficiale.

Problemi correlati