2009-10-22 15 views
72

Traté de buscar una referencia de JavaScript, pero no hay ninguna disponible. Las dos mejores fuentes sugeridas son MDN (Mozilla Developer Network) y W3Schools.¿Por qué no hay una referencia OFICIAL de JavaScript?

¿Por qué?

+44

Evita w3schools; su material JS tiende a ser extremadamente pobre, en mi humilde opinión. – NickFitz

+0

¿Qué MDE? ¿enlace por favor? – hasen

+1

Lo siento, quise decir MDC; https://developer.mozilla.org/en/About_JavaScript – huy

Respuesta

55

No es que haya una versión oficial de JavaScript. Todos los navegadores han creado su propio motor JavaScript, aunque algunos usan el mismo. Pero especialmente Internet Explorer tiene su propia versión que no admite mucho de lo que admiten los otros navegadores, lo que hace que sea muy difícil hacer una referencia general de JavaScript.

Editar:
Aunque sé que hay un estándar ECMA oficial y el equipo de desarrollo, mi punto es que en realidad no importa, siempre y cuando los navegadores (Internet Explorer) no vivir conforme a ella. Al final del día, los clientes también quieren que JavaScript funcione para Internet Explorer. No les importan los estándares de ECMA, solo quieren que funcione. Aquí es donde las bibliotecas de JavaScript entran en escena, pero esa es otra historia.

Son los mismos problemas con HTML y CSS, no podemos utilizar estas herramientas para el desarrollo activo hasta:

  • Todos los navegadores los apoyan.
  • Suministramos los navegadores con código para hacer que la soporten.
  • Está bien, no funciona en todos los navegadores.

Edit2:
Internet Explorer se está acercando a la tumba con el nuevo proyecto del navegador de Microsoft: Edge. Esto, sin embargo, realmente no cambia la imagen general. Todavía tenemos mucho si necesitamos diferentes navegadores para apoyar.Los desarrolladores intentan constantemente superar los límites de lo que es posible. Esto significa que a menudo tenemos este problema, alguna versión de navegador que queremos admitir no admite alguna característica del estándar (que generalmente es un poco fluido), lo que significa que tenemos que hacer alguna solución o usar frameworks que implementen el falta de funciones incorporadas.

+0

Veo, ¿diferentes navegadores tienen su propia implementación según el estándar ECMA-262 que Michael mencionó anteriormente? – huy

+3

@huy: sí - con distintos niveles de soporte para/interpretaciones variables de ese estándar, por desgracia ... –

+1

-1, There * is * un estándar oficial de Javascript: se llama ECMAscript y hay un cuerpo oficial detrás de él: http://en.wikipedia.org/wiki/Ecma_International – hasen

18

yo diría que ésta es la "oficial": https://developer.mozilla.org/en/JavaScript

También tiene la ECMAScript Language Specification, 5.1 Edition(o como PDF, la especificación definitiva).

Y de Microsoft: JavaScript Language Reference: "Esta documentación explica la implementación de Microsoft de JavaScript, que es compatible con la especificación de ECMAScript 5 ª Edición especificación lenguaje También proporciona funciones adicionales que no están incluidos en las Normas de Ecma.".

+0

¿También para IE? :) – Victor

+7

IE no tiene un motor de JavaScript: implementa JScript (que es en gran medida compatible). http://msdn.microsoft.com/en-us/library/yek4tbz0%28VS.85%29.aspx se parece a la referencia oficial para eso. – Quentin

+1

Hmm ... https: //developer.mozilla/ es muy útil, pero no lo llamaría "oficial". La especificación del lenguaje ECMAScript está más cerca de "oficial". –

27

Usted puede tratar con el sitio oficial de ECMAScript,

http://www.ecmascript.org/

pero la cosa útil es en realidad la implementación de cada navegador.

Me gusta este cheatsheet desde JavaScript Biblia de Danny Goodman mucho:

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

+0

Esa hoja de trucos está muerta. ¿Puedo sugerir caniuse.com? – Grinn

+0

Gracias, me vinculé al nuevo enlace y le expliqué un poco de qué se trataba. ¡Gracias por el aviso! – Victor

+0

Bien, lo verificaré. – Grinn

2

Hay una referencia oficial, simplemente no está en un formato muy conveniente. Es la especificación ECMA-262. Es un documento PDF único, muy grande, en lugar de un conjunto de páginas HTML con capacidad de búsqueda.

2

Encuentro la vieja escuela Netscape 4 JavaScript docs muy útil para este propósito. A pesar de que, obviamente, están totalmente desactualizados, y algunas de las funciones de DOM en ellos, como Capas, han desaparecido hace tiempo, para los aspectos básicos del lenguaje, son realmente sólidos.

Eso es porque antes de los días de la supremacía de IE y la estandarización de ECMA, el JavaScript de Netscape era el JavaScript definitivo. Otros navegadores prácticamente tuvieron que implementar exactamente lo que ves en esos viejos documentos.

También son mucho más fáciles de leer que el documento ECMA-262, que incluso para los estándares de los documentos de estándares es un horror absoluto.

2

Cualquier revisión de JavaScript pages on MDC por un miembro del equipo de Documentación de Mozilla (como Eric Shepherd) es oficial. JavaScript es mantenido oficialmente por Mozilla, por lo que solo la documentación de Mozilla es oficial. Los únicos motores que admiten JavaScript están hechos actualmente por Mozilla y cada otro motor implementa ECMAScript. JavaScript y ECMAScript tienen bastantes diferencias (por ejemplo, la impresionante declaración let).

2

Es muy difícil tener una referencia "oficial" siempre que haya implementaciones (en todos los navegadores) y haya una especificación (ECMAScript) pero no pruebas de conformidad de las implementaciones en función de las especificaciones.

Ahora, tenemos el conjunto de conformidad EMCAScript 5 en http://es5conform.codeplex.com/ - y parece haber consenso en cuanto a que las implementaciones de ECMAScript se acercarán, haciendo que ECMAScript sea más probable que sea la referencia oficial del idioma.

6

Si está utilizando ECMAScript para la web (que es el 99.9% de las personas), entonces más allá de las características sintácticas básicas del lenguaje (cubiertas en la especificación ECMA-262 mencionada anteriormente), lo que probablemente esté buscando es una referencia DOM, que es la API de ECMAScript que se utiliza para interactuar con documentos web.

Estoy muy sorprendido de que nadie haya mencionado el DOM api sofar. Actual estándar del W3C DOM está aquí: http://www.w3.org/TR/DOM-Level-2-Core/

(por cierto, en cuanto a la confusión de nombres - ECMAScript es el nombre de la norma oficial, y "Javascript" y "JScript" son Netscape y "tenedores" de Microsoft propietarias)

0

Me gusta mucho Daniel Krook's apidoc, aunque podría usar algunas explicaciones y ejemplos. Realmente me gustaría ver un mashup krook w3school.

1

Por "oficial", creo que te refieres a "escrito por los responsables de JavaScript".

Solo especular aquí realmente, pero las personas responsables de JavaScript (ECMA) no obtienen ningún beneficio directamente de ello, y probablemente no tienen ninguna habilidad particular para escribir documentación de referencia. Entonces no tienen el incentivo ni la capacidad de escribir una buena referencia.

Personalmente, me gusta JavaScript: the Definitive Guide de O'Reilly. Hay una sexta edición que sale en noviembre.

+0

En realidad, las personas responsables de JavaScript serían Netscape (ahora Mozilla) y hacen una buena documentación: el MDC. Sin embargo, estoy de acuerdo con usted acerca de que el estándar ECMAScript es pobre si está intentando aprender JavaScript. – Pauan

+0

@Pauan: ¿Mozilla es responsable de JavaScript? ¿No es más como HTML y CSS, donde los fabricantes de navegadores en general son colectivamente responsables de ello? ¿O es Mozilla en realidad la única organización que impulsa el lenguaje (a diferencia de las interfaces DOM como las que se encuentran en HTML5)? (Solo pregunto porque no estoy familiarizado con la situación, tengo suficientes problemas para que mi código JavaScript funcione sin preocuparme por mi cabeza con cosas nuevas en el lenguaje central). –

+2

Sí, lo son. Sun posee la marca comercial de JavaScript, pero la autorizó a Netscape. Oracle compró Sun, por lo que ahora Oracle posee la marca registrada (aún la licencian a Mozilla). HTML y CSS están definidos por el W3C, entonces esa es una cuestión diferente. El motor JS en Firefox contiene muchas características propietarias (e impresionantes) que no se encuentran en ningún otro navegador. El creador de JavaScript (Brendan Eich) está en el comité oficial de ECMAScript, y también trabaja para Mozilla. – Pauan

0

la cita de Wikipedia:

Inicios en Netscape

En noviembre de 1996, presentó Netscape JavaScript para Ecma International ...

JavaScript es administrado oficialmente por Mozilla Foundation ...

Entonces, en mi opinión, ECMA es el estándar y Mozilla es el oficial.

Cuestiones relacionadas