Pergunta

Em Notepad ++, eu estava escrevendo um arquivo JavaScript e algo não funcionou:. Um alerta teve que ser mostrado quando um botão foi clicado, mas não estava funcionando

I tem usado o plugin de auto-completar fornecido com Notepad ++, que me presenteou com onClick.

Quando eu mudei o C capital para uma pequena c, ele fez trabalho.

Então, primeiro de tudo, quando se olha para as funções da auto-realização, notei uma série de funções que utilizam capitais.

Mas quando você mudar getElementById para getelementbyid, você também terá um erro, e para piorar as coisas, meu manual da escola escreve todo o material com letras maiúsculas, mas as soluções são todos feitos em letras pequenas.

Assim que é com JavaScript e seu carácter selectivo no sentido de que as funções podem ter letras maiúsculas neles e que não pode?

Foi útil?

Solução

Javascript é Sempre case-sensitive, html não é.

Parece que pensei que você está falando sobre se os atributos html (por exemplo, onclick) são ou não são maiúsculas de minúsculas. A resposta é que os atributos não são maiúsculas de minúsculas, mas a maneira que nós acessá-los através do DOM é. Assim, você pode fazer isso:

<div id='divYo' onClick="alert('yo!');">Say Yo</div> // Upper-case 'C'

ou

<div id='divYo' onclick="alert('yo!');">Say Yo</div> // Lower-case 'C'

mas através do DOM você deve usar o caso correto. Então isso funciona:

getElementById('divYo').onclick = function() { alert('yo!'); }; // Lower-case 'C'

mas você não pode fazer isso:

getElementById('divYo').onClick = function() { alert('yo!'); }; // Upper-case 'C'

EDIT: CMS faz um grande ponto de que a maioria dos métodos DOM e propriedades estão em camelCase . A única exceção que vem à mente são propriedades de manipulador de eventos e estes são geralmente aceite para ser o caminho errado para anexar a eventos de qualquer maneira. Preferem usar addEventListener como em:

document.getElementById('divYo').addEventListener('click', modifyText, false);

Outras dicas

Alguns objetos é IE não são sempre maiúsculas e minúsculas, incluindo alguns / mais / all ActiveX - por que tanto XHR.onReadyStateChange e XHR.onreadystatechange iria funcionar multa no IE5 ou IE6, mas apenas este último iria trabalhar com o XMLHttpRequest objeto nativo no IE7, FF, etc.

Mas, uma referência rápida para " padrão " caixa API:

  • MAIÚSCULAS - Constantes (geralmente simbólica, já que const não é suportado globalmente)
  • capitalizados - Aulas / funções de objeto
  • em minúsculas - Eventos
  • camelCase - tudo o resto

Não há 100% de garantias. Mas, a maioria-wise, este é preciso.

métodos API JavaScript são quase todos chamados com lowerCamelCase nomes e JavaScript é sensível a maiúsculas

Javascript deve sempre ser caso sensível, mas eu já vi casos em Internet Explorer onde ele tolera todas as letras maiúsculas para alguns nomes de função, mas não outros. Eu acho que é limitada a funções que também existem no Visual Basic, como há alguns endogamia estranho entre os intérpretes. É evidente que este comportamento deve ser evitado, a menos que sua intenção é fazer com que o código que só é executado em um navegador:)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top