Domanda

In Notepad++, stavo scrivendo un file JavaScript e qualcosa non ha funzionato:un avviso doveva essere mostrato quando un pulsante è stato cliccato, ma non funzionava.

Ho utilizzato la funzione di auto-completamento plug-in fornito con Notepad++, che mi ha presentato onClick.

Quando ho cambiato la capitale C per un piccolo c, non lavoro.

Quindi, prima di tutto, quando guardando le funzioni di auto-completamento, ho notato un sacco di funzioni mediante capitali.

Ma quando si cambia getElementById per getelementbyid, si ottiene anche un errore, e a peggiorare le cose, il mio manuale da scuola si scrive le cose con le lettere maiuscole, ma le soluzioni sono tutte fatte in lettere minuscole.

Così che cosa è con JavaScript e la sua natura selettiva verso cui funzioni possono avere le lettere maiuscole in loro e che non si può?

È stato utile?

Soluzione

Javascript è SEMPRE case-sensitive, html non è.

Sembra che si sta parlando di se gli attributi html (ad es.onclick) sono o non sono case-sensitive.La risposta è che gli attributi non sono case sensitive, ma il modo in cui si accede tramite il DOM è.Così, si può fare questo:

<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'

ma attraverso il DOM è necessario utilizzare il carattere corretto.Quindi, questo funziona:

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

ma non è possibile fare questo:

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

EDIT:CMS rende un ottimo punto che la maggior parte DOM metodi e le proprietà sono in camelCase.L'unica eccezione che mi viene in mente sono il gestore di evento di proprietà e questi sono generalmente accettato di essere il modo sbagliato di allegare agli eventi comunque.Preferisco usare addEventListener come in:

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

Altri suggerimenti

Pochi oggetti è IE non sempre sono case-sensitive, tra cui alcune, la maggior parte/tutti i controlli ActiveX -- perché sia XHR.onReadyStateChange e XHR.onreadystatechange avrebbe funzionato bene in IE5 o IE6, ma solo l'ultimo lavoro con i nativi XMLHttpRequest oggetto in IE7, FF, etc.

Ma, un riferimento rapido per il "standard"API involucro:

  • MAIUSCOLE - Costanti (generalmente simbolico, dal momento che const non supportate a livello globale)
  • In maiuscolo - Classi/funzioni Oggetto
  • minuscolo - Eventi
  • camelCase - tutto il resto

100% l'assenza di garanzie.Ma, a maggioranza di saggio, questo è accurata.

API JavaScript metodi sono quasi tutti chiamati con lowerCamelCase nomi e JavaScript è case-sensitive

Javascript dovrebbe sempre maiuscole, ma ho visto casi in Internet Explorer dove si tollera tutto maiuscolo per alcuni nomi di funzione, ma non altri.Penso che si è limitato a funzioni che esistono anche in Visual Basic, dal momento che c'è qualche strano consanguineità tra gli interpreti.Chiaramente questo comportamento dovrebbe essere evitato, a meno che, naturalmente, il vostro intento è quello di rendere il codice che viene eseguito solo in un browser :)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top