JavaScript и почему заглавные буквы иногда работают, а иногда нет

В Notepad ++ я писал файл JavaScript, и что-то не работало: при нажатии кнопки должно было отображаться предупреждение, но оно не работало.

Я использовал плагин автозаполнения, поставляемый с Notepad ++, который представил мне onClick.

Когда я сменил заглавную C на маленькую c, все заработало.

Итак, прежде всего, глядя на функции в автозаполнении, я заметил много функций, использующих заглавные буквы.

Но когда вы меняете getElementById на getelementbyid, вы также получаете ошибку, и, что еще хуже, мой школьный учебник пишет все вещи заглавными буквами, но все решения выполняются маленькими буквами.

Так что же с JavaScript и его избирательным характером в отношении того, какие функции могут иметь заглавные буквы, а какие нет?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
7
0
6 445
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Javascript чувствителен к регистру ВСЕГДА, html - нет.

Звучит так, как будто вы говорите о том, являются ли атрибуты html (например, onclick) чувствительными к регистру или нет. Ответ заключается в том, что атрибуты не чувствительны к регистру, но есть способ доступа к ним через DOM. Итак, вы можете сделать это:

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

или же:

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

но через DOM вы должны использовать правильный регистр. Итак, это работает:

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

но вы не можете этого сделать:

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

Обновлено: CMS подчеркивает, что большинство методов и свойств DOM находятся в верблюд. Единственное исключение, которое приходит на ум, - это свойства обработчика событий, которые в любом случае обычно считаются неправильный способ привязки к событиям. Предпочитайте использовать addEventListener, как в:

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

Было бы неплохо прямо упомянуть, что атрибуты и свойства не связаны строго. Атрибут значения input указывает только то, каким он должен быть при инициализации, тогда как свойство input имеет текущее значение. Атрибуты data- * связаны с elem.dataset [*], но, в отличие от атрибута value, набор данных синхронизируется в обоих направлениях (при установке на стороне javascript для атрибута устанавливается значение, возвращаемое методом toString). Некоторые вещи, такие как атрибут checked, могут отражать соответствующее свойство, которое необходимо для css для правильного стиля.

Chinoto Vokro 12.05.2016 21:15

Почти все методы JavaScript API вызываются с именами lowerCamelCase, а JavaScript чувствителен к регистру.

Javascript должен всегда чувствителен к регистру, но я видел случаи в Internet Explorer, когда он допускал использование всего верхнего регистра для некоторых имен функций, но не для других. Я думаю, что это ограничено функциями, которые также существуют в Visual Basic, так как между интерпретаторами существует странное инбридинг. Ясно, что этого поведения следует избегать, если, конечно, вы не собираетесь делать код, который работает только в одном браузере :)

Некоторые объекты IE не всегда чувствительны к регистру, включая некоторые / большинство / все ActiveX - почему и XHR.onReadyStateChange, и XHR.onreadystatechange будут нормально работать в IE5 или IE6, но только последний будет работать с собственным объектом XMLHttpRequest в IE7, FF , так далее.

Но, краткий справочник по корпусу API "стандарт":

  • ВЕРХНИЙ РЕГИСТР - Константы (обычно символические, поскольку const не поддерживается глобально)
  • С заглавной буквы - Классы / Функции объекта
  • строчная буква - События
  • верблюд - все остальное

Никаких 100% гарантий. Но в большинстве случаев это верно.

Другие вопросы по теме