Las principales diferencias entre JavaScript en IE y JavaScript en los navegadores modernos (por ejemplo, Firefox) se pueden atribuir a las mismas razones detrás de las diferencias en CSS / (X) HTML entre navegadores. En el pasado, no existía un estándar de facto; IE / Netscape / Opera pelearon una guerra territorial, implementando la mayoría de las especificaciones, pero también omitiendo algunas, así como haciendo especificaciones propietarias para obtener ventajas entre sí. Podría continuar, pero saltemos al lanzamiento de IE8: JavaScript se evitó / despreció durante años, y con el aumento de FF y el desprecio de webcomm, IE eligió centrarse principalmente en avanzar su CSS desde IE6 en adelante. Y básicamente dejó atrás el soporte DOM. El soporte DOM de IE8 bien podría ser el de IE6, que se lanzó en 2001 ... así que el soporte DOM de IE está casi una década por detrás de los navegadores modernos. Si tiene discrepancias de JavaScript específicas de un motor de diseño, lo mejor es atacarlo de la misma manera que abordamos los problemas de CSS; Apuntando a ese navegador. NO USE SNIFFING DEL NAVEGADOR, use la detección de funciones para olfatear su navegador / su nivel de soporte DOM.
JScript no es la propia implementación de IE de ECMAScript; JScript fue la respuesta de IE al JavaScript de Netscape, ambos existieron antes de ECMAScript.
En cuanto a los atributos de tipo en el elemento de script, type = "text / javascript" es el estándar predeterminado (al menos en HTML5), por lo que nunca necesitará un atributo de tipo a menos que su script no sea JavaScript.
En la medida en que IE no es compatible con innerHTML ... innerHTML fue inventado por IE y todavía hoy NO es un estándar DOM. Otros navegadores lo han adoptado porque es útil, por lo que puede usarlo en varios navegadores. En cuanto al cambio dinámico de tablas, MSDN dice "debido a la estructura específica requerida por las tablas, las propiedades innerText e innerHTML de la tabla y los objetos tr son de solo lectura". No sé cuánto de eso fue cierto inicialmente, pero claramente los navegadores modernos lo han descubierto al lidiar con las complejidades del diseño de tablas.
Recomiendo leer PPK en JavaScript Scripting DOM de
Jeremy Keith, de
Douglas Crockford : The Good Parts
y JavaScript Beginning de Christian Hellman con Scripting DOM y Ajax para obtener una sólida comprensión de JavaScript.
En lo que respecta a Frameworks / Libraries, si aún no tiene un conocimiento sólido de JavaScript, debe evitarlos. Hace 2 años caí en la trampa de jQuery, y aunque pude realizar hazañas magníficas, nunca aprendí nada sobre codificar JavaScript correctamente. En retrospectiva, jQuery es un increíble juego de herramientas DOM, pero mi incapacidad para aprender los cierres adecuados, la herencia prototípica, etc., no solo hizo retroceder mi conocimiento personal, mi trabajo comenzó a tener grandes impactos de rendimiento porque no tenía ni idea de lo que estaba haciendo.
JavaScript es el idioma del navegador; Si usted es un ingeniero del lado del cliente / front-end, es de suma importancia que controle JavaScript. Node.js está trayendo JavaScript al máximo, veo inmensos avances a diario en su desarrollo; JavaScript del lado del servidor será un estándar en un futuro muy cercano. Menciono esto para enfatizar aún más cuán importante es JavaScript ahora y será.
JavaScript va a hacer más olas que Rails.
¡Feliz secuencia de comandos!