본문 바로가기
Javascript

JAVASCRIPT Const let var

by titlejjk 2023. 6. 13.

https://velog.io/@yonghk423/let-var-const%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90%EA%B3%BC-%ED%98%B8%EC%9D%B4%EC%8A%A4%ED%8C%85

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

댓글