W przeszłości zawsze używałam podkreślników do definiowania atrybutów klasy i id w HTML. W ciągu ostatnich kilku lat przeszedłem na myślniki, głównie po to, aby dostosować się do trendów w społeczności , niekoniecznie dlatego, że miało to dla mnie sens.
Zawsze myślałem, że kreski mają więcej wad i nie widzę korzyści:
Uzupełnianie i edycja kodu
Większość redaktorów traktuje myślniki jako separatory słów, więc nie mogę przechodzić do odpowiedniego symbolu. Powiedz, że klasa to „ featured-product
”, muszę wykonać automatyczne „ featured
”, wprowadzić myślnik i uzupełnić „ product
”.
Podkreślenia „ featured_product
” są traktowane jak jedno słowo, dlatego można je wypełnić w jednym kroku.
To samo dotyczy poruszania się po dokumencie. Przeskakiwanie przez słowa lub podwójne kliknięcie na nazwę klasy jest przerywane myślnikami.
(Mówiąc bardziej ogólnie, uważam klasy i identyfikatory za tokeny , więc nie ma dla mnie sensu, aby token mógł być tak łatwo rozdzielać na myślniki).
Niejednoznaczność z operatorem arytmetycznym
Użycie myślników przerywa dostęp do właściwości obiektu do elementów formularza w JavaScript. Jest to możliwe tylko w przypadku podkreślników:
form.first_name.value='Stormageddon';
(Wprawdzie sam nie uzyskuję dostępu do elementów formularza w ten sposób, ale decydując się na myślniki vs. podkreślenia jako ogólną zasadę, weź pod uwagę, że ktoś może.)
Języki, takie jak Sass (szczególnie w ramach kompasu ), zostały ustawione na myślniki jako standard, nawet w przypadku nazw zmiennych. Początkowo używali również podkreślników. Fakt, że jest to analizowane inaczej, wydaje mi się dziwny:
$list-item-10
$list-item - 10
Niespójność z nazewnictwem zmiennych w różnych językach
Wcześniej pisałem underscored_names
dla zmiennych w PHP, Ruby, HTML / CSS i JavaScript. Było to wygodne i spójne, ale ponownie, aby „dopasować się”, teraz używam:
dash-case
w HTML / CSScamelCase
w JavaScriptunderscore_case
w PHP i Ruby
Nie przeszkadza mi to zbytnio, ale zastanawiam się, dlaczego zostały one tak źle dopasowane, pozornie celowo. Przynajmniej dzięki podkreśleniom można było zachować spójność:
var featured_product = $('#featured_product'); // instead of
var featuredProduct = $('#featured-product');
Różnice tworzą sytuacje, w których musimy niepotrzebnie tłumaczyć ciągi , wraz z potencjalnym błędem.
Pytam więc: dlaczego społeczność prawie uniwersalnie zdecydowała się na myślniki i czy istnieją jakieś powody, które przewyższają podkreślenia?
Od czasu, kiedy to się zaczęło, jest powiązane pytanie , ale jestem zdania, że nie jest to (lub nie powinno być) tylko kwestia gustu. Chciałbym zrozumieć, dlaczego wszyscy zdecydowaliśmy się na tę konwencję, jeśli naprawdę była to tylko kwestia gustu.