JavaScript에서는 숫자(Number) 타입으로는 선행 0(leading zero)을 유지할 수 없습니다. 예를 들어 0678이라는 값을 숫자로 저장하면 자동으로 678로 변환되어 맨 앞의 0이 사라집니다.
따라서 선행 0이 필요한 값(예: 사원 번호, 우편번호, 전화번호 등)은 반드시 문자열(String)로 취급해야 합니다. 아래 예제처럼 ID를 문자열로 전달하면 선행 0이 그대로 유지됩니다.
예제: 문자열로 처리하여 선행 0 유지하기
아래 코드에서는 직원 ID '0678'을 문자열로 함수에 전달하여 선행 0을 그대로 출력합니다.
<html>
<head>
<script>
function sayHello(name, age, id) {
document.write(name + " is " + age + " years old, with id = " + id);
}
</script>
</head>
<body>
<p>아래 버튼을 클릭하여 함수를 호출하세요</p>
<form>
<input type="button" onclick="sayHello('John', 26, '0678')"
value="Display Employee Info">
</form>
</body>
</html>실행 결과
John is 26 years old, with id = 0678
추가 팁: padStart()로 선행 0 채우기
ES2017(ES8)부터 지원되는 padStart() 메서드를 사용하면, 숫자를 원하는 자릿수만큼 앞자리 0으로 채울 수도 있습니다.
let num = 678; let padded = String(num).padStart(4, '0'); console.log(padded); // "0678"
정리하면, JavaScript에서 선행 0을 유지하려면 해당 값을 문자열로 다루거나, 필요한 경우 padStart() 메서드로 자릿수를 맞춰주는 것이 가장 안전하고 권장되는 방법입니다.