Programming/웹(Web) - Design, Server

JavaScript 변수 선언 키워드

esoog Polaris 2023. 10. 18. 13:30
반응형

JavaScript에서 변수를 선언하는데 사용되는 세 가지 키워드인 `var`, `let`, 그리고 `const`에 대해 비교적으로 설명해 드리겠습니다. 이러한 키워드는 변수의 범위와 변이 가능성에 대한 규칙을 정의합니다.

1. **var**:
   - `var`는 ES5(이전 버전)에서 사용되는 변수 선언 키워드입니다.
   - 함수 스코프를 가지며, 함수 내에서 선언된 변수는 함수 내 어디서든 접근 가능합니다.
   - 호이스팅(Hoisting)이 발생하며, 변수가 선언되기 전에 사용해도 오류가 발생하지 않습니다.
   - 블록 스코프를 지원하지 않아 블록 내에서 선언된 변수가 함수 내에서도 유효합니다.

function example() {
  if (true) {
    var x = 10;
  }
  console.log(x); // 10
}

 


2. **let**:
   - `let`은 ES6(ES2015)에서 도입된 변수 선언 키워드입니다.
   - 블록 스코프를 가지며, 블록 내에서 선언된 변수는 해당 블록 내에서만 유효합니다.
   - 호이스팅이 발생하지만, 변수는 초기화되기 전에 사용하면 "ReferenceError"가 발생합니다.

function example() {
  if (true) {
    let x = 10;
  }
  console.log(x); // ReferenceError: x is not defined
}

 


3. **const**:
   - `const`도 ES6에서 도입된 변수 선언 키워드이며, 상수를 선언하는 데 사용됩니다.
   - 블록 스코프를 가지며, 값이 한 번 할당되면 변경할 수 없습니다. 그러나 객체 또는 배열의 내부 내용은 수정할 수 있습니다.

const PI = 3.14159;
PI = 3; // TypeError: Assignment to a constant variable

const arr = [1, 2, 3];
arr.push(4); // 허용됨
arr = [4, 5, 6]; // TypeError: Assignment to a constant variable



요약하면, 변수를 선택할 때 다음과 같은 고려 사항을 고려해야 합니다:
- `let`은 변수의 변경이 필요한 경우에 사용하며, 블록 스코프를 사용합니다.
- `const`는 값이 변경되지 않는 상수를 선언할 때 사용하며, 블록 스코프를 사용합니다.
`var`은 더 이상 권장되지 않으며, `let`과 `const`를 대체하여 사용하는 것이 좋습니다.

728x90

'Programming > 웹(Web) - Design, Server' 카테고리의 다른 글

JavaScript(자바스크립트)  (0) 2023.09.26
CodeIgniter(코드이그나이터) 관련  (0) 2023.09.12
Node.js  (0) 2023.09.02
jQuery와 Ajax  (0) 2023.08.02
PHP 언어  (0) 2023.07.06