1. 소개 – “javascript:void(0)”이란 무엇인가?
자바스크립트를 배우다 보면 코드에서 “javascript:void(0)” 표기를 접할 수 있습니다. 처음 보면 이해하기 어렵지만, 페이지 동작을 제어하고 이벤트 처리를 관리하는 유용한 기법 중 하나입니다. 이 기사는 “javascript:void(0)”의 의미, 목적, 사용법을 명확히 설명합니다. 또한 중요한 주의사항과 현대적인 대안을 다룹니다.
1-1. 흔한 질문: “javascript:void(0)”은 무엇을 의미하나요?
“javascript:void(0)”은 링크나 버튼의 기본 동작을 방지하고 대신 사용자 지정 자바스크립트를 실행하기 위해 사용되는 표기입니다.
일반적으로 HTML <a> 태그는 클릭 시 대상 페이지로 이동합니다. 하지만 링크가 아무 곳으로도 이동하지 않고 버튼처럼 동작하게 하려면 “javascript:void(0)”이 유용합니다.
예시:
<a href="javascript:void(0);">Click</a>
이 링크를 클릭하면 그 자체로는 아무 일도 일어나지 않습니다. 대신 자신의 자바스크립트 이벤트 처리를 연결할 수 있습니다.
1-2. 독자 도전 과제와 기사 목적
웹 페이지에 사용자 지정 이벤트 처리를 추가할 때 링크와 버튼을 제어하는 방법은 많습니다. 그러나 “javascript:void(0)”은 초보자에게 혼란을 줄 수 있으며, 잘못 사용하면 SEO나 접근성에 영향을 미칠 수 있습니다. 이 기사는 다음 주제를 다루어 올바르게 이해하고 사용할 수 있도록 합니다:
- “javascript:void(0)”의 기본 개념과 구현
- 주의사항과 단점
- 더 안전하고 현대적인 대안
이 지식을 통해 더 현대적이고 효율적인 웹 애플리케이션을 구축할 수 있을 것입니다.
2. “javascript:void(0)”의 기본 개념
“javascript:void(0)”은 주로 링크나 버튼의 기본 동작을 비활성화하기 위해 사용되는 자바스크립트 표현식 유형입니다. 이 섹션에서는 void 연산자가 어떻게 작동하는지와 “void(0)”이 실제로 무엇을 의미하는지 설명합니다.
2-1. “void” 연산자가 의미하는 것
자바스크립트에서 “void” 연산자는 아무것도 반환하지 않습니다 (undefined).
일반적으로 자바스크립트 표현식은 값을 반환하지만, “void”는 결과를 undefined로 강제합니다. 주로 부수 효과를 수행하면서 평가 결과를 무시할 때 사용됩니다.
기본 예시:
console.log(void(0)); // Output: undefined
이것은 void(0)이 undefined를 반환한다는 것을 확인합니다.
2-2. “void(0)”이 나타내는 것
“void(0)”은 “아무것도 하지 않음”을 나타냅니다. undefined로 평가되어 페이지 이동을 방지하면서 사용자 지정 클릭 동작을 허용합니다. 예시:
<a href="javascript:void(0);" onclick="alert('Clicked!');">Click</a>
이 링크는 이동하지 않지만 경고를 트리거합니다.
2-3. “javascript:void(0)”이 사용되는 이유
주요 이유는 다음과 같습니다:
- 링크 이동 비활성화 사용자 지정 클릭 이벤트를 처리하면서 페이지 새로고침을 방지합니다.
- 죽은 링크로 사용 개발 중 플레이스홀더로 유용합니다.
- 간단하고 구현하기 쉬움 초보자 친화적인 구문입니다.

3. 사용 예시와 구현
이 섹션에서는 “javascript:void(0)”의 기본 스니펫부터 적용 시나리오까지 실제 사용 예시를 설명합니다.
3-1. 기본 코드 예시
<a href="javascript:void(0);">Link</a>
이 링크를 클릭하면 아무 일도 일어나지 않습니다.
3-2. 클릭 이벤트 사용자 지정
예시 1: 경고 표시
<a href="javascript:void(0);" onclick="alert('Clicked!');">Click</a>
3-3. 시나리오 기반 예시
모달 창 트리거 HTML:
<a href="javascript:void(0);" id="openModal">Open Modal</a>
<div id="modal" style="display:none; background:rgba(0,0,0,0.5); padding:20px;">
<p>This is a modal window.</p>
<button id="closeModal">Close</button>
</div>
JavaScript:
document.getElementById('openModal').addEventListener('click', function() {
document.getElementById('modal').style.display = 'block';
});
document.getElementById('closeModal').addEventListener('click', function() {
document.getElementById('modal').style.display = 'none';
});
4. 장점과 단점 – 정말 사용해야 할까?
“javascript:void(0)”은 널리 사용되지만, 몇 가지 단점이 있습니다. 이 섹션에서는 장점과 주의사항을 모두 설명합니다.
4-1. 이점
- 기본 탐색 방지
- 간단하고 직관적인 구문
- 플레이스홀더 링크에 유용
4-2. 단점
- SEO 영향 검색 엔진이
href내용을 크롤링할 수 없습니다. - 접근성 문제 화면 판독기와 키보드 탐색이 제대로 작동하지 않을 수 있습니다.
4-3. 언제 사용하고 언제 피할지
권장 사용 사례:
- 링크로 구현되었지만 버튼처럼 동작할 때
- 임시 데드 링크
피할 때:
- SEO 친화적인 링크가 필요할 때
- 접근성이 중요한 경우

5. 대안 및 현대 모범 사례
“javascript:void(0)”은 편리하지만, 더 현대적이고 안전한 접근 방식이 존재합니다.
5-1. event.preventDefault() 사용
개념 이 방법은 링크 탐색이나 폼 제출과 같은 기본 동작을 취소합니다. 예시 HTML:
<a href="#" id="customLink">Link</a>
JavaScript:
document.getElementById('customLink').addEventListener('click', function(event) {
event.preventDefault();
alert('Custom event executed!');
});
5-2. <button> 태그 사용
HTML5는 버튼-like 동작을 구현할 때 <button> 요소를 사용하는 것을 권장합니다.
HTML:
<button id="actionButton">Click</button>
JavaScript:
document.getElementById('actionButton').addEventListener('click', function() {
alert('Button clicked!');
});
5-3. 접근성 및 SEO 친화적 예시
HTML:
<a href="#" id="accessibleLink" tabindex="0">Click</a>
JavaScript:
document.getElementById('accessibleLink').addEventListener('keydown', function(event) {
if (event.key === 'Enter') {
alert('Executed with Enter key!');
}
});
6. 사용 사례별 예시 코드
6-1. 탐색 메뉴 생성
HTML:
<a href="javascript:void(0);" id="menuToggle">Menu</a>
<ul id="menu" style="display: none;">
<li><a href="#">Home</a></li>
<li><a href="#">Services</a></li>
<li><a href="#">Contact</a></li>
</ul>
JavaScript:
document.getElementById('menuToggle').addEventListener('click', function() {
const menu = document.getElementById('menu');
menu.style.display = (menu.style.display === 'none') ? 'block' : 'none';
});
6-2. 모달 창 트리거
HTML:
<a href="javascript:void(0);" id="openModal">Open Modal</a>
<div id="modal" style="display:none; background:rgba(0,0,0,0.5); padding:20px;">
<p>This is a modal window.</p>
<button id="closeModal">Close</button>
</div>
JavaScript:
const modal = document.getElementById('modal');
document.getElementById('openModal').addEventListener('click', function() {
modal.style.display = 'block';
});
document.getElementById('closeModal').addEventListener('click', function() {
modal.style.display = 'none';
});
7. 요약 – “javascript:void(0)” 사용 및 미래 옵션
7-1. 주요 요점
- 기본 개념 : 기본 링크 동작을 비활성화하고 사용자 지정 로직을 실행합니다.
- 주의사항 및 대안 : SEO와 접근성을 위해
event.preventDefault()또는<button>을 사용합니다. - 실제 예시 : 탐색 메뉴, 모달 트리거 등.
7-2. 현대 개발을 위한 권장 사항
“javascript:void(0)”은 여전히 사용되지만, 현대 개발은 SEO와 사용성을 우선시합니다. 권장 접근 방식:
- 빠른 프로토타입이나 매우 작은 프로젝트에 “javascript:void(0)” 사용.
- 프로덕션 환경에서
event.preventDefault()또는<button>사용.
7-3. 마무른 생각
여기 소개된 기술을 사용하여 SEO와 사용자 경험을 모두 고려한 코딩을 구현하세요.



