Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 변수를 다시 선언하면 어떻게 될까요?

JavaScript에서 var 키워드로 선언한 변수를 다시 선언해도 기존에 저장된 값은 그대로 유지됩니다. 즉, 값을 재할당하지 않고 단순히 변수를 한 번 더 선언하는 것만으로는 변수의 값이 초기화되거나 사라지지 않습니다.

예제

다음 예제에서는 변수 age를 먼저 20으로 선언하고, 이후 같은 이름으로 다시 한 번 선언합니다.

<html>
   <body>
      <script>
         var age = 20;
         var age; // 다시 선언해도 값은 유지됨
         if( age > 18 ){
            document.write("운전 면허 취득 가능");
         }
      </script>
   </body>
</html>

실행 결과

운전 면허 취득 가능

위 코드에서 두 번째 var age; 선언은 변수의 값을 지우지 않기 때문에, 조건문에서 age의 값이 여전히 20으로 평가되어 "운전 면허 취득 가능"이라는 문구가 출력됩니다.

참고: let과 const의 경우

ES6(ES2015)에서 도입된 letconstvar와 달리 같은 스코프 내에서 변수를 다시 선언할 수 없습니다. 동일한 이름으로 다시 선언하려고 하면 SyntaxError가 발생합니다.

let age = 20;
let age; // SyntaxError: Identifier 'age' has already been declared

따라서 최신 JavaScript 코드에서는 실수로 인한 변수 중복 선언을 방지하기 위해 let 또는 const 사용을 권장합니다.