Логика очень простая. В javascript имена не могут содержать ничего, кроме _, букв и $. Так сложилось, что вещи, которые в «обычной природе» мы пишем через тире (оно же дефис, черточка и минус) (некоторые CSS свойства, HTML атрибуты), тут нужно писать по правилу -ab-cd = AbCd, то есть, отбрасывать тире, а букву, следующую за ним, возводить в верхний регистр.
Примеры:
border-width - borderWidth,
-moz-transform - MozTransform,
data-tag-for-title - dataset.tagForTitle.