¿Por qué no hay una referencia OFICIAL de JavaScript? [cerrado]

90

Intenté buscar una referencia de JavaScript, pero no hay ninguna disponible. Las dos mejores fuentes sugeridas son MDN (Mozilla Developer Network) y W3Schools.

¿Por qué?

huy
fuente
54
Evite las w3schools; su material JS tiende a ser extremadamente pobre, en mi humilde opinión.
NickFitz
1
Lo siento, quise decir MDC; developer.mozilla.org/en/About_JavaScript
huy
9
Este es un comentario al azar, pero personalmente creo que todos los navegadores deberían eliminar todas las bastarizaciones de Javascript / Jscript e implementar jQuery de forma nativa. :)
DisgruntledGoat
14
Fondos de pantalla de jQuery sobre el DOM, pero en realidad no reemplaza a JavaScript.
Rob
2
@huy MDN, no MDC o MDE
maan81

Respuestas:

63

No es como si hubiera una versión oficial de JavaScript. Todos los navegadores han creado su propio motor de JavaScript, aunque algunos utilizan el mismo. Pero especialmente Internet Explorer tiene su propia versión que no admite mucho de lo que admiten otros navegadores, lo que dificulta mucho hacer una referencia general de JavaScript.

Editar:
Si bien sé que hay un equipo de desarrollo y estándar ECMA oficial, mi punto es que realmente no importa mientras los navegadores (Internet Explorer) no lo cumplan. Al final del día, los clientes quieren que JavaScript también funcione para Internet Explorer. No les importan los estándares 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 usar estas herramientas para el desarrollo activo hasta que:

  • Todos los navegadores los admiten.
  • Suministramos código a los navegadores para que lo admitan.
  • Está bien, no funciona en todos los navegadores.

Edit2:
Internet Explorer se está acercando a la tumba con el nuevo proyecto de navegador de Microsoft: Edge. Sin embargo, esto no cambia realmente el panorama general. Todavía tenemos muchos navegadores diferentes que necesitamos admitir. Los desarrolladores intentan constantemente ampliar los límites de lo que es posible. Esto significa que a menudo tenemos este problema, alguna versión del navegador que queremos admitir no es compatible con alguna característica del estándar (que generalmente es un poco fluida), lo que significa que tenemos que hacer alguna solución o usar marcos que implementen el archivo integrado que falta. en características.

googletorp
fuente
Ya veo, entonces los diferentes navegadores tienen su propia implementación de acuerdo con el estándar ECMA-262 que Michael mencionó anteriormente.
huy
3
@huy: sí, con diferentes niveles de apoyo para / diferentes interpretaciones de ese estándar, lamentablemente ...
Andrzej Doyle
1
-1, no es un estándar oficial Javascript: se llama ECMAscript y hay un organismo oficial detrás de él: en.wikipedia.org/wiki/Ecma_International
Hasen
No estoy seguro de por qué ha señalado que Internet Explorer es peor al admitir el "estándar" ECMA que cualquier otro navegador.
5
@ ראובן: Porque es / fue. Durante mucho tiempo, IE no solo tuvo muchos errores graves que otros navegadores no tenían, sino que también carecía de características importantes que tenían otros navegadores. Sin embargo, IE8 y 9 se han puesto al día mucho, por lo que la situación está cambiando. Pero durante muchos años IE fue horrible, mientras que los otros navegadores tenían un buen soporte para ECMAScript. Además, ECMAScript es un estándar. No estoy seguro de por qué lo puso entre comillas.
Pauan
28

Puede probar con el sitio oficial de ECMAscript,

http://www.ecmascript.org/

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

Me gusta mucho esta hoja de trucos de la Biblia JavaScript de Danny Goodman:

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

Víctor
fuente
Esa hoja de trucos está muerta. ¿Puedo sugerir caniuse.com?
Grinn
Gracias, me vinculé al nuevo enlace y expliqué un poco de qué se trataba. ¡Gracias por el aviso!
Victor
Bien, lo comprobaré.
Grinn
21

Yo diría que este es el "oficial": https://developer.mozilla.org/en/JavaScript

También tiene la Especificación de lenguaje ECMAScript, Edición 5.1 (o como PDF , la especificación definitiva) .

Y de Microsoft: Referencia del lenguaje JavaScript : "Esta documentación explica la implementación de JavaScript de Microsoft , que cumple con la especificación del lenguaje ECMAScript 5th Edition . También proporciona características adicionales que no están incluidas en los Estándares Ecma".

Espo
fuente
8
IE no tiene un motor JavaScript, sino que implementa JScript en su lugar (que es en gran parte compatible). msdn.microsoft.com/en-us/library/yek4tbz0%28VS.85%29.aspx parece la referencia oficial para eso.
Quentin
3
Hmm ... developer.mozilla es muy útil, pero yo no lo llamaría "oficial". La especificación del lenguaje ECMAScript está más cerca de ser "oficial".
Steve Harrison
4
La Especificación del lenguaje ECMAScript es la referencia oficial para ECMAScript. JavaScript es un superconjunto de ECMAScript, fue creado por Netscape y Mozilla heredó MDC de Netscape (aunque el nombre ha cambiado desde entonces)
Quentin
+1 para el estándar ECMAScript.
Jason S
@Quentin: es interesante que el título del enlace de MSDN al que hace referencia ahora sea "Referencia de JavaScript" . Sin embargo, el artículo de MSDN "JScript (ECMAScript3)" establece: "JScript es la implementación de Microsoft de la especificación del lenguaje ECMA 262 (ECMAScript Edition 3). Con solo unas pocas excepciones (para mantener la compatibilidad con versiones anteriores), JScript es una implementación completa de el estándar ECMA ". .
DavidRR
8

Si está utilizando ECMAScript para la web (que es el 99,9% de las personas), más allá de la sintaxis básica del lenguaje (cubierto 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 usa para interactuar con documentos web.

Estoy muy sorprendido de que nadie haya mencionado la API DOM hasta ahora. El estándar DOM actual del W3C 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 del estándar oficial, y "Javascript" y "JScript" son las "bifurcaciones" propietarias de Netscape y Microsoft)


fuente
3

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

Michael Aaron Safyan
fuente
3

Cualquier revisión de las páginas de JavaScript en MDC por parte de 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 son los fabricados actualmente por Mozilla y todos los demás motores implementan ECMAScript. JavaScript y ECMAScript tienen bastantes diferencias (por ejemplo, la letdeclaración impresionante ).

Eli Grey
fuente
3

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 con las especificaciones.

Sin embargo, ahora tenemos el paquete de conformidad EMCAScript 5 en http://es5conform.codeplex.com/ , y parece haber cierto consenso en que las implementaciones de ECMAScript se acercarán, lo que hará que ECMAScript sea más probable que sea la referencia oficial para el idioma.

user195021
fuente
2

Encuentro la vieja escuela documentos JavaScript de Netscape 4 de muy útiles para este propósito. Aunque obviamente están totalmente desactualizados, y algunas de las características DOM en ellos, como las capas, han desaparecido hace mucho tiempo, para los conceptos básicos del lenguaje son realmente sólidas.

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

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

bobince
fuente
1

Cita de Wikipedia:

Inicios en Netscape

En noviembre de 1996, Netscape envió JavaScript a Ecma International ...

JavaScript es administrado oficialmente por la Fundación Mozilla ...

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

SandroMarques
fuente
0

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

Realmente solo estoy especulando aquí, pero las personas responsables de JavaScript (ECMA) no ganan dinero directamente con él, y probablemente no tengan ninguna habilidad particular para escribir documentación de referencia. Así que no tienen el incentivo ni la capacidad para escribir una buena referencia.

Personalmente, me gusta JavaScript: la guía definitiva de O'Reilly. Hay una sexta edición que saldrá en noviembre.

Paul D. Waite
fuente
2
Sí lo son. Sun posee la marca registrada de JavaScript, pero la licencia a Netscape. Oracle compró Sun, por lo que ahora Oracle posee la marca comercial (todavía la licencian a Mozilla). HTML y CSS están definidos por el W3C, así que ese es un asunto diferente. El motor JS en Firefox contiene muchas características patentadas (e increíbles) 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
1
Además, observe este enlace: en.wikipedia.org/wiki/ECMAScript#Dialects Firefox tiene lo que se conoce como "JavaScript 1.8.5" que, como ya se mencionó, contiene muchas características avanzadas que no se encuentran en otros navegadores, como la desestructuración de objetos / matrices / comprensiones. , generadores / iteradores, bloques let / declaraciones, etc. También tenga en cuenta la segunda nota al pie de ese enlace, que dice "Mozilla administra la versión oficial de JavaScript. La mayoría de las implementaciones que no son de Mozilla que afirman" conformidad "con JavaScript no son compatibles con la mayoría de las extensiones de JavaScript; más bien, apuntan a ECMA-262, edición 3. "
Pauan
1
Notaré que ECMAScript es diferente de JavaScript. ECMAScript es un estándar definido por Ecma. Los navegadores suelen ser bastante buenos para admitir el estándar ECMAScript, y cuando la mayoría de la gente dice "JavaScript", lo que realmente quieren decir es ECMAScript. Es lamentable que la situación y la terminología sean tan confusas, pero ahí está. Entonces, en su mayor parte, la definición informal de JavaScript es "cualquier cosa que hagan los navegadores", pero oficialmente, Mozilla es realmente responsable de ello.
Pauan
1
Lo que esto significa es que cualquier pregunta que solicite una "referencia oficial de JavaScript" es demasiado vaga para responder con precisión. Tiene el estándar ECMAScript oficial, las implementaciones reales de JavaScript en los navegadores, el MDC (que cubre la implementación oficial de JavaScript en Firefox) y, por supuesto, la documentación no oficial muy popular como w3schools. Todos son útiles, por lo que en realidad no hay ninguna referencia "única correcta" como la que existe para, digamos, Python.
Pauan
2
(quizás debería haber publicado esto como una respuesta real, en lugar de una serie de comentarios ... bueno)
Pauan
-1

Me gusta mucho el apidoc de Daniel Krook , aunque le bien algunas explicaciones y ejemplos. Realmente me gustaría ver un mashup de krook w3school.

Ben
fuente