Frage

In Notepad ++, war ich eine JavaScript-Datei zu schreiben und etwas nicht funktioniert. Eine Warnung hatte gezeigt werden, wenn auf eine Schaltfläche geklickt wurde, aber es funktionierte nicht

habe ich die auto-complete-Plugin zur Verfügung gestellt mit Notepad ++ verwendet, die mich präsentiert mit onClick.

Als ich das Kapital C zu einem kleinen c verändert, es hat funktioniert.

Also zunächst einmal, wenn man die Funktionen in der Auto-Vervollständigung der Suche, ich habe eine Menge Funktionen bemerkt mit Kapitellen.

Aber wenn man getElementById getelementbyid ändern, können Sie auch eine Fehlermeldung erhalten, und noch schlimmer zu machen, mein Handbuch von der Schule schreibt das ganze Zeug mit Großbuchstaben, aber die Lösungen sind alle in Kleinbuchstaben erfolgen.

Was ist es mit JavaScript und seine Selektivität gegenüber, welche Funktionen Großbuchstaben in ihnen haben können und welche nicht?

War es hilfreich?

Lösung

Javascript ist immer case-sensitive, html ist es nicht.

Es klingt, als gedacht, Sie sprechen darüber, ob HTML-Attribute (z Onclick) sind oder nicht zwischen Groß- und Kleinschreibung unterschieden. Die Antwort ist, dass die Attribute nicht beachtet werden, aber die Art und Weise, dass wir sie durch das DOM zugreifen ist. Also, Sie können dies tun:

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

oder:

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

, sondern durch den DOM müssen Sie den richtigen Fall verwenden. So funktioniert das:

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

Sie können dies aber nicht tun:

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

EDIT: CMS macht einen großen Punkt, dass die meisten DOM-Methoden und Eigenschaften sind in camelcase . Die einzige Ausnahme, die den Sinn kommt, sind Event-Handler-Eigenschaften und diese werden im Allgemeinen als die falsche Art und Weise akzeptiert zu befestigen Veranstaltungen sowieso. Bevorzugen Sie mit addEventListener wie in:

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

Andere Tipps

Einige Objekte ist IE sind nicht immer case-sensitive, darunter auch einige / die meisten / alle ActiveX - warum beide XHR.onReadyStateChange und XHR.onreadystatechange funktionieren würde, fein in IE5 oder IE6, aber nur die letztere mit dem nativen XMLHttpRequest Objekt in IE7, FF funktionieren würde, etc.

Aber eine schnelle Referenz für " Standard " API Gehäuse:

  • Groß - Konstanten (in der Regel symbolisch, da const ist nicht global unterstützt)
  • Aktiviert - Klassen / Objektfunktionen
  • Klein - Events
  • Camelcase - alles andere

Keine 100% garantiert. Aber Mehrheit weist, ist dies genau.

JavaScript-API-Methoden sind fast alle aufgerufen, mit lowerCamelCase Namen und JavaScript ist case-sensitive

Javascript sollte immer Fall empfindlich sein, aber ich habe Fälle, in Internet Explorer zu sehen, wo sie alle Großbuchstaben für einige Funktionsnamen toleriert, andere aber nicht. Ich denke, es auf Funktionen beschränkt ist, die auch in Visual Basic existieren, da es einige ungeradeen Inzucht zwischen den Interpreten ist. Offensichtlich sollte dieses Verhalten vermieden werden, es sei denn natürlich Ihre Absicht ist, den Code zu machen, die nur in einem Browser ausgeführt wird:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top