As principais diferenças entre o JavaScript no IE e o JavaScript nos navegadores modernos (por exemplo, Firefox) podem ser atribuídas às mesmas razões por trás das diferenças no navegador cruzado CSS / (X) HTML. Antigamente não havia um padrão de fato; O IE / Netscape / Opera travou uma guerra de territórios, implementando a maioria das especificações, mas também omitindo algumas, bem como fazendo especificações proprietárias para obter vantagens umas sobre as outras. Eu poderia continuar, mas vamos pular para o lançamento do IE8: JavaScript foi evitado / desprezado por anos, e com a ascensão do FF e o desprezo do webcomm, o IE escolheu se concentrar principalmente no avanço de seu CSS a partir do IE6. E basicamente deixou o suporte DOM para trás. O suporte ao DOM do IE8 também pode ser o do IE6, que foi lançado em 2001 ... então o suporte ao DOM do IE está quase uma década atrás dos navegadores modernos. Se você tiver discrepâncias de JavaScript específicas para um mecanismo de layout, sua melhor aposta é atacá-lo da mesma forma que enfrentamos os problemas de CSS; Visando esse navegador. NÃO USE SNIFFING DE NAVEGADOR, use detecção de recursos para detectar seu navegador / seu nível de suporte DOM.
JScript não é a implementação de ECMAScript do IE; JScript foi a resposta do IE ao JavaScript da Netscape, ambos surgindo antes do ECMAScript.
No que diz respeito aos atributos de tipo no elemento de script, type = "text / javascript" é o padrão padrão (pelo menos em HTML5), então você nunca precisa de um atributo de tipo, a menos que seu script não seja JavaScript.
Quanto ao IE não suportar innerHTML ... innerHTML foi inventado pelo IE e ainda hoje NÃO é um padrão DOM. Outros navegadores o adotaram porque é útil, e é por isso que você pode usá-lo em vários navegadores. No que diz respeito à alteração dinâmica de tabelas, o MSDN diz "por causa da estrutura específica exigida pelas tabelas, o innerText e o innerHTML propriedades dos objetos table e tr são somente leitura." Não sei o quanto disso era verdade inicialmente, mas claramente os navegadores modernos descobriram enquanto lidavam com as complexidades do layout de tabelas.
Eu recomendo fortemente a leitura de PPK em JavaScript
Jeremy Keith's DOM Scripting JavaScript de
Douglas Crockford : The Good Parts
e Christian Hellman's Beginning JavaScript with DOM Scripting e Ajax para obter um forte domínio sobre JavaScript.
No que diz respeito a Frameworks / Bibliotecas, se você ainda não tem um bom domínio de JavaScript, deve evitá-los. 2 anos atrás caí na armadilha do jQuery e, embora fosse capaz de realizar feitos magníficos, nunca aprendi absolutamente nada sobre como codificar JavaScript corretamente. Em retrospecto, o jQuery é um kit de ferramentas DOM incrível, mas minha falha em aprender fechamentos apropriados, herança prototípica, etc., não apenas atrasou meu conhecimento pessoal, mas meu trabalho começou a ter grandes impactos de desempenho porque eu não tinha ideia do que estava fazendo.
JavaScript é a linguagem do navegador; se você é um engenheiro do lado do cliente / front-end, é de extrema importância que você comande o JavaScript. Node.js está trazendo o JavaScript completo, vejo imensos avanços diários em seu desenvolvimento; O JavaScript do lado do servidor será um padrão em um futuro muito próximo. Estou mencionando isso para enfatizar ainda mais o quão importante o JavaScript é agora e será.
JavaScript vai fazer mais ondas do que Rails.
Bom script!