var, let, const(변수, 상수)

Hanso·2024년 5월 21일
0

1) var, let, const

변수는 var와 let 두 가지로 나뉜다.
그리고 상수인 const

하지만 var 키워드는 사용하지 않는다!
이유는 논리적인 흐름에서 계속 벗어나기 때문에

코드로 설명

let a = "let 변수 a"
if(true) {
	let b = "let 변수 b"
    console.log(b)
};

console.log(a)
console.log(b)

원래 b라는 변수는 if문 안에서만 사용이 가능한 변수인데,
let이 아닌 var 키워드를 사용하게 된다면 오류 없이 실행이 된다.

var a = "var 변수 a"
if (true) {
	var b = "var 변수 b"
    console.log(b)
}

위에 코드처럼 사용하면 원래는 출력이 되면 안 되는데 var를 사용하게 되면, 출력이 되는 현상이 발생된다.

let과 const는 블록스코프

선언된 블록 내에서만 사용 가능함!

let은 var와 같이 변할 수 있는 수이지만, 호이스팅 문제가 발생되지 않는다.
반면에 const는 변할 수 없는 값을 뜻함!

아래는 var를 선언 했을 때의 예시

function test() {
	var test = "오오";
    if (true) {
    	var test = "바뀔까?"
    }
    console.log(test);
}
test()

>> 결과는... 바뀌어서 출력 됨

var 사용 시 호이스팅 문제 발생

console.log(a)
var a = "var 변수 a"
console.log(a)

var를 사용하게 된다면 위에처럼 변수를 선언하기도 전에도 호이스팅 문제가 발생한다.

  • var를 사용하게 된다면, 호이스팅 때문에 위로 올라가서 출력이 됨.
  • 보통 코드는 위에서 아래로 읽기 때문에, 원래라면 console.log(a)에서 오류가 발생하는데 var를 사용하면 출력하게 되어서 문제 발생

그래서 어떤 걸 사용하면 좋을까

정답은 아니지만, 가능하다면 변수는 let과 const만 사용하는 것이 제일 좋다. 그 이유는 위에서도 말 했듯,
변경이 되지 않기에 오류 발생의 원인이 되지 않고 더불어서 안정성과 버그를 예방할 수 있기 때문이다.

가능하다면 const를 먼저 선언하고, 변경 될 값에만 let을 쓰는 것이 제일 바람직하다!

그것이 가독성도, 보수유지도, 오류도 날 일이 없음!!!

let과 const 사용 방법과 차이점

let 사용 했을 시

let test1 = "hi";
console.log(test1);

let은 변할 수 있는 값이니까, 만약 변경하려고 한다면?

test1 = "반갑습니다.";
console.log(test1);

을 하게 된다면 반갑습니다. < 로 변경되어 출력!

const 사용 했을 시

const test2 = "hi"
console.log(test1)

변경하려고 한다면?

test2 = "안녕하세요" << 여기서 에러 발생!!!

0개의 댓글