const와 let은 JavaScript에서 변수를 선언하는데 사용되는 두 가지 키워드이다.
이 두 키워드는 변수의 범위와 재할당 가능 여부에 차이가 있다.
1. const
- const로 선언된 변수는 상수(constant)로 간주된다. 즉, 한 번 할당되면 다시 할당할 수 없다.
- 선언과 동시에 값을 할당해야 한다.
- const변수는 블록범위(block-scoped)이다. 즉, 중괄호({})내에서 선언된 경우 해당 블록 내에서만 유효하다.
- 객체나 배열의 경우, const변수는 해당 객체 또는 배열의 내용을 변경할 수 있다. 하지만 다른 객체나 배열로 재할당할 수는 없다.
const pi = 3.14;
const name = "John";
const arr = [1,2,3];
arr.push(4); //가능
arr = [4,5,6]; //불가능
2. let
- let으로 선언된 변수는 재할당이 가능하다.
- 선언과 동시에 초기값을 할당할 수도 있고, 초기값을 할당하지 않고 선언할 수도 있다.
- let변수도 const와 같이 블록 범위이다.
let count = 1;
count = 2; //재할당 가능
let x; //초기값을 할당하지 않음
x = 10;
이외에 참고로 var는 var키워드로 선언된 변수는 함수 범위(function-scoped)를 가지며, 블록 범위를 갖지 않는다. 또한 var변수는 재선언과 재할당이 모두 가능하다. 그러나 var는 const가 도입된 이후로는 가급적 사용을 피하는 것이 좋다.
그렇다면 var는 const와 let과 무엇이 다른지 살펴보자
3. var
- var로 선언된 변수는 함수 범위(function-scoped)를 가진다. 즉, 변수의 범위는 선언된 함수 내부로 제한이 된다. 함수 내에서 선언된 변수는 해당 함수 내에서 어디든지 접근할 수 있다.
- var로 선언된 변수는 호이스팅(hoisting)이 발생한다. 호이스팅은 변수 선언이 해당 스코프의 최상단으로 끌어올려지는 동작을 의미한다. 따라서 변수를 선언하기 전에도 참조가 가능하다. 다만, 초기값이 할당되기 전에 변수를 사용하면 undefined가 된다.
- var변수는 재선언과 재할당이 모두 가능하다.
function example(){
var x = 1;
if( x == 1){
var x = 2;
console.log(x); //출력 : 2
}
console.log(x); //출력 : 2
}
example();
var는 함수 범위를 가지고 호이스팅이 발생하기 때문에 의도치 않으 동작을 초래할 수 있다. 따라서,var 대신에 const와 let을 사용하는 것이 가독성과 유지보수 측면에 더 권장이 된다.
'Javascript' 카테고리의 다른 글
Vue.js의 기본문법 (0) | 2023.06.15 |
---|---|
Vue.js (0) | 2023.06.15 |
AJAX (3) | 2023.06.08 |
JAVASCRIPT Backtick (0) | 2023.06.01 |
JAVASCRIPT .setAttribute (0) | 2023.06.01 |
댓글