1. Introduction – “javascript:void(0)”이란?
JavaScript를 배우다 보면 소스 코드에 javascript:void(0)이라는 표기를 만나게 됩니다. 처음 보면 이 표현이 이해하기 어려울 수 있지만, 웹 페이지에서 사용자 상호작용과 이벤트 처리를 제어하는 중요한 기술 중 하나입니다.
이 글에서는 javascript:void(0)의 의미와 역할을 명확히 설명하고, 실용적인 사용 예시를 함께 제공합니다. 또한 중요한 주의사항과 최신 대안에 대해서도 자세히 다룹니다.
1-1. 흔히 묻는 질문: “javascript:void(0)”이란?
javascript:void(0)은 링크나 버튼의 기본 동작을 막고 대신 사용자 정의 로직을 실행하도록 하는 JavaScript 표현식입니다.
보통 HTML 앵커 태그(\<a>)는 클릭하면 지정된 URL로 이동합니다. 하지만 이동 없이 버튼처럼 동작하도록 하고 싶을 때 javascript:void(0)이 유용합니다.
간단한 예시를 보세요:
<a href="javascript:void(0);">Click</a>
이 링크를 클릭해도 아무 일도 일어나지 않습니다. 대신 JavaScript 이벤트 처리 로직을 연결해 동작을 제어할 수 있습니다.
1-2. 독자가 겪는 어려움과 글의 목표
웹 페이지에서 사용자 정의 이벤트 처리를 구현할 때 링크와 버튼을 제어하는 방법은 다양합니다. 그러나 javascript:void(0)은 초보자에게 혼란을 줄 수 있으며, 잘못 사용하면 SEO와 접근성에 부정적인 영향을 미칠 수 있습니다.
이 글에서는 javascript:void(0)을 올바르게 이해하고 실제로 활용할 수 있도록 다음 주제를 다룹니다:
javascript:void(0)의 기본 개념과 구현 방식- 중요한 주의사항 및 단점
- 더 안전하고 최신적인 대안
이 지식을 습득하면 독자는 보다 현대적이고 효율적인 웹 애플리케이션을 만들 수 있게 됩니다.
2. “javascript:void(0)”의 핵심 개념
javascript:void(0)은 주로 링크나 버튼의 기본 동작을 비활성화하기 위해 사용되는 JavaScript 표현식입니다. 이 섹션에서는 void 연산자가 어떻게 동작하는지와 void(0)이 실제로 의미하는 바를 설명합니다.
2-1. void의 의미와 역할
JavaScript에서 void는 값을 반환하지 않으며(undefined를 항상 반환) 하는 연산자입니다.
보통 JavaScript 함수나 표현식은 어떤 값을 반환하지만, void 연산자는 결과를 undefined로 강제합니다. 이를 통해 개발자는 평가 결과를 무시하고 부수 효과만 발생시키도록 할 수 있습니다.
void의 기본 예시는 다음과 같습니다:
console.log(void(0)); // Outputs 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)”을 사용할까?
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에 부정적인 영향
javascript:void(0)을 사용하는 링크는 검색 엔진이 제대로 크롤링하지 못해 SEO 효율이 떨어질 수 있습니다. - 접근성 문제 스크린 리더와 키보드 네비게이션이 올바르게 동작하지 않을 수 있습니다.
4-3. 사용 시기와 피해야 할 경우
추천 사용 사례:
- 링크를 사용해 버튼과 같은 동작을 구현할 때.
- 임시로 자리표시자 또는 죽은 링크를 설정할 때.
피해야 할 경우:
- SEO와 접근성이 중요한 링크.
- 유지보수와 확장성이 요구되는 대규모 프로젝트.

5. 대안 및 최신 모범 사례
javascript:void(0)은 편리한 기법이지만, SEO와 접근성 측면에서 신중히 고려해야 합니다. 이 섹션에서는 보다 안전하고 권장되는 대안을 소개합니다.
5-1. event.preventDefault() 사용
기본 개념
event.preventDefault()는 요소의 기본 동작(예: 링크 이동이나 폼 제출)을 취소하는 메서드입니다.
예시
HTML:
<a href="#" id="customLink">Link</a>
JavaScript:
document.getElementById('customLink').addEventListener('click', function(event) {
event.preventDefault(); // Disable default behavior
alert('A custom event was executed!');
});
5-2. <button> 태그 사용
기본 개념
HTML5에서는 버튼 역할을 하는 요소에 <button> 태그를 사용하는 것이 권장됩니다.
예시
HTML:
<button id="actionButton">Click</button>
JavaScript:
document.getElementById('actionButton').addEventListener('click', function() {
alert('The button was 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 using the 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. 핵심 요점
javascript:void(0)의 핵심 개념 링크의 기본 동작을 비활성화하면서 사용자 정의 로직을 실행할 수 있게 하는 기법.- 주의사항 및 대안 SEO와 접근성을 보장하기 위해
event.preventDefault()와<button>태그와 같은 접근법을 권장. - 실용적인 예시와 적용 시나리오 네비게이션 메뉴와 모달 윈도우와 같은 구체적인 사용 사례를 소개.
7-2. 현대 웹 개발을 위한 권장 사항
javascript:void(0)가 일부 상황에서 여전히 사용되지만, 현대 웹 개발은 접근성과 SEO를 더욱 중시합니다.
권장 접근법:
- 작은 프로젝트나 빠른 동작 테스트에는
javascript:void(0)를 사용. - 프로덕션 환경 및 대규모 프로젝트에서는 확장성과 안전성을 보장하기 위해
event.preventDefault()또는<button>태그를 사용.
7-3. 최종 생각
이 글에서 제시된 지식을 바탕으로 SEO와 사용자 경험을 균형 있게 고려하며 코딩을 연습하세요.



