과거 에는 HTML에서 클래스 및 id 속성 을 정의하기 위해 항상 밑줄을 사용 했습니다. 지난 몇 년 동안 나는 대쉬로 바뀌었고, 대부분 나에게 의미가 있었기 때문에 공동체 의 트렌드 와 나 자신을 맞추기 위해 주로 바뀌었다 .
나는 항상 대시에 더 많은 단점이 있다고 생각했지만 이점을 보지 못했습니다.
코드 완성 및 편집
대부분의 편집자는 대시를 단어 구분 기호로 취급하므로 원하는 기호로 이동할 수 없습니다. 클래스가 " featured-product
"이고 자동 완성 " featured
", 하이픈을 입력하고 " "을 (를) 완료 해야합니다 product
.
밑줄이있는 " featured_product
"는 한 단어로 취급되므로 한 번에 채울 수 있습니다.
문서 탐색에도 동일하게 적용됩니다. 단어로 점프하거나 클래스 이름을 두 번 클릭하면 하이픈으로 구분됩니다.
(보다 일반적으로 클래스와 ID를 tokens 라고 생각 하므로 하이픈에서 토큰을 쉽게 분리 할 수 있어야한다는 것은 의미가 없습니다.)
산술 연산자를 사용한 모호성
대시를 사용하면 JavaScript에서 양식 요소 에 대한 개체 속성 액세스가 중단 됩니다. 밑줄로만 가능합니다.
form.first_name.value='Stormageddon';
(필자는 분명히이 방법으로 양식 요소에 액세스하지 않지만 보편적 인 규칙으로 대시 대 밑줄을 결정할 때 누군가가 할 수 있다고 생각하십시오.)
Sass (특히 Compass 프레임 워크 전체) 와 같은 언어 는 변수 이름에 대해서도 대시로 표준으로 설정되었습니다. 그들은 처음에도 밑줄을 사용했습니다. 이것이 파싱되었다는 사실은 나를 이상하게 생각합니다.
$list-item-10
$list-item - 10
여러 언어에서 변수 이름이 불일치
예전 underscored_names
에는 PHP, ruby, HTML / CSS 및 JavaScript로 변수 를 작성 했습니다. 이것은 편리하고 일관되었지만 다시 "적합"하기 위해 사용합니다.
dash-case
HTML / CSS에서camelCase
JavaScript로underscore_case
PHP와 루비에서
이것은 실제로 나를 너무 귀찮게하지는 않지만, 왜 이것이 의도적으로 정렬이 잘못되었는지 궁금합니다. 최소한 밑줄로 일관성을 유지할 수있었습니다.
var featured_product = $('#featured_product'); // instead of
var featuredProduct = $('#featured-product');
이러한 차이 로 인해 버그 가능성과 함께 문자열을 불필요하게 번역 해야하는 상황이 발생 합니다.
그래서 나는 묻습니다. 왜 공동체가 거의 보편적으로 대시에 정착했으며 밑줄보다 중요한 이유가 있습니까?
거기입니다 관련 질문 이 시작 무렵 뒤에서는,하지만 난 그렇지 않은 (또는 의견의이야 안 되었습니다) 취향의 문제. 이 컨벤션이 실제로 맛의 문제라면 왜 우리 모두가이 컨벤션에 정착했는지 이해하고 싶습니다.