JavaScript y por qué las letras mayúsculas a veces funcionan y a veces no
-
01-07-2019 - |
Pregunta
En el Bloc de notas++, yo estaba escribiendo un archivo JavaScript y algo no funciona:una alerta tenía que ser mostrado cuando un botón se hizo clic, pero no estaba funcionando.
Me ha utilizado la opción de auto-completar plugin siempre con el Notepad++, que me presentó con onClick
.
Cuando cambié la capital C
para un pequeño c
, que funcionó.
Así, en primer lugar, cuando se mira en las funciones de la auto-realización, me di cuenta de un montón de funciones uso de capitales.
Pero al cambiar getElementById
a getelementbyid
, usted también consigue un error, y para empeorar las cosas, mi manual de la escuela escribe todas las cosas, con letras mayúsculas, pero las soluciones están todos hechos en letras pequeñas.
Entonces, ¿qué es con JavaScript y su carácter selectivo hacia qué funciones puede tener letras mayúsculas en ellos y que no se puede?
Solución
Javascript es SIEMPRE sensible a mayúsculas, html no es.
Suena como el pensamiento de usted están hablando acerca de si los atributos de html (por ejemplo,onclick) son o no son sensibles a mayúsculas y minúsculas.La respuesta es que los atributos no son sensibles a mayúsculas, pero la forma en la que accedemos a ellos a través de la DOM.Así, usted puede hacer esto:
<div id='divYo' onClick="alert('yo!');">Say Yo</div> // Upper-case 'C'
o:
<div id='divYo' onclick="alert('yo!');">Say Yo</div> // Lower-case 'C'
pero a través de la DOM debe utilizar el caso correcto.Así funciona esto:
getElementById('divYo').onclick = function() { alert('yo!'); }; // Lower-case 'C'
pero usted no puede hacer esto:
getElementById('divYo').onClick = function() { alert('yo!'); }; // Upper-case 'C'
EDITAR:CMS hace un gran punto de que la mayoría de los métodos de DOM y propiedades están en camelCase.La única excepción que viene a la mente son el controlador de eventos de propiedades y estos son generalmente aceptados para ser el camino equivocado para adjuntar a los eventos de todos modos.Prefieren el uso de addEventListener
como en:
document.getElementById('divYo').addEventListener('click', modifyText, false);
Otros consejos
Un par de objetos de IE no siempre son sensibles a las mayúsculas, incluyendo algunos/más/todos los ActiveX - ¿por qué tanto XHR.onReadyStateChange y XHR.onreadystatechange funcionaría bien en IE5 o IE6, pero sólo el último trabajo con los nativos XMLHttpRequest objeto en IE7, FF, etc.
Pero, una referencia rápida para los "estándar"API de la carcasa:
- MAYÚSCULAS - Constantes (generalmente simbólico, ya que const no es globalmente compatible)
- En mayúsculas - Clases/funciones de Objeto
- minúsculas - Eventos
- camelCase - todo lo demás
No hay un 100% de garantías.Pero, la mayoría de los sabios, esto es exacto.
El API de JavaScript métodos son casi todos los que se llama con lowerCamelCase nombres y JavaScript es sensible a mayúsculas
Javascript debe siempre sensible a mayúsculas y minúsculas, pero he visto casos en el Explorador de Internet donde se tolera todas las mayúsculas para algunos de los nombres de función, pero no en otros.Creo que está limitado a las funciones que también existe en Visual Basic, ya que hay algunos impar de consanguinidad entre los intérpretes.Claramente este comportamiento se debe evitar, a menos que tu intención es hacer un código que sólo se ejecuta en un navegador :)