Ответ 1
Есть две причины, почему это важно.
Прежде всего, атрибуты HTML не чувствительны к регистру, что означает, что "someName" и "somename" - это тот же атрибут. Таким образом, лучшим стилем является использование обозначения "kebab-case" для разделения слов в имени атрибута. Поэтому мы используем синтаксис "атрибут-имя" для атрибутов HTML и имен тегов.
С другой стороны, имена кебаба-case не являются допустимыми идентификаторами в Javascript, поэтому для использования таких имен как директивы Angular нам нужно будет использовать подробные > . Но поскольку в мире Javascript camelCase стандартно де-факто для именования переменных и свойств объекта, Angular использует нормализацию (см. Источник) для преобразования шашлыка -case имена для camelCase и наоборот.