JavaScript 변수 선언 중복 방지하기
JavaScript에서 전역 스코프의 변수 충돌과 중복 선언을 방지하려면, 변수 선언을 즉시 실행 함수 표현식(IIFE)으로 감싸는 것이 효과적인 방법입니다.
IIFE를 활용한 변수 보호
아래 코드처럼 함수 표현식으로 변수를 감싸면 됩니다:
(function(){
var rank = 1;
}())위 코드에서 rank 변수는 함수 내부에 캡슐화되어 있기 때문에, 외부의 다른 변수나 함수와 이름이 같더라도 서로 충돌하지 않습니다.
동작 원리
JavaScript의 함수는 자신만의 독립적인 스코프(scope)를 생성합니다. 따라서 함수 내부에 선언된 rank 변수는 해당 함수 밖에서 접근할 수 없으며, 이는 다음과 같은 장점을 제공합니다:
- 전역 네임스페이스 오염을 막을 수 있습니다.
- 다른 라이브러리나 스크립트에서 사용하는 전역 변수와 이름 충돌을 예방합니다.
또한 이 방식은 함수 외부에 이미 존재하는 다른 전역 변수들에는 아무런 영향을 주지 않습니다.
주의사항
rank 변수가 함수 외부에서는 보이지 않으므로, 해당 변수를 사용하는 모든 코드는 반드시 함수 내부에 작성해야 합니다. 만약 함수 밖에서도 값을 사용해야 한다면, 함수의 반환값을 통해 필요한 데이터를 노출시키는 방식을 고려해 볼 수 있습니다.