네, JavaScript에서 모든 선언을 코드 맨 위에 두는 것은 권장되는 좋은 코딩 습관입니다. 변수와 함수 선언을 상단에 모아두면 코드의 구조가 명확해지고 유지보수가 쉬워집니다. 아래 예제를 통해 살펴보겠습니다.
예제
<html> <head> <title>JavaScript String match() Method</title> </head> <body> <script> // 모든 변수를 코드 상단에 선언 var str, re, found; str = "For more information, see Chapter 3.4.5.1"; re = /(chapter \d+(\.\d)*)/i; found = str.match( re ); document.write(found ); </script> </body> </html>
위 예제처럼 str, re, found 세 개의 변수를 스크립트 시작 부분에서 한 번에 선언한 뒤 값을 할당하고 있습니다. 이렇게 하면 어떤 변수가 사용되는지 한눈에 파악할 수 있습니다.
선언을 상단에 두어야 하는 이유
- 변수 관리가 쉬워집니다. 모든 변수를 한 곳에서 확인할 수 있어 코드 검토와 디버깅이 편리합니다.
- 전역 변수 사용을 방지합니다. 의도치 않게 전역 변수를 생성하는 실수를 줄일 수 있습니다.
- 중복 선언을 피할 수 있습니다. 같은 변수를 여러 번 선언하는 실수를 예방합니다.
- 코드 가독성이 향상됩니다. 다른 개발자도 코드 구조를 쉽게 이해할 수 있습니다.
호이스팅(Hoisting)과의 관계
JavaScript에는 호이스팅(hoisting)이라는 특성이 있습니다. var로 선언된 변수는 실행 전에 해당 스코프의 최상단으로 끌어올려지지만, 값의 초기화까지 함께 올라가지는 않습니다. 따라서 선언 전에 변수를 사용하면 undefined가 반환되어 예상치 못한 버그가 발생할 수 있습니다. 선언을 직접 코드 상단에 작성하면 이러한 혼란을 사전에 방지할 수 있으며, 최신 문법인 let과 const를 사용할 때는 블록 스코프의 시작 부분에 선언하는 것이 더욱 안전합니다.