let과 const, var의 차이는 뭘까?(scope 개념 기반)

이예음·2022년 8월 30일
0
post-thumbnail

Scope

자바스크립트에서 변수는 어떠한 범위 안에서만 사용 가능하다는 규칙을 갖고있는데, scope는 변수와 그 값이 어디까지 사용 가능한지를 판단하는 범위이다!
함수를 선언할 때 {}로 묶어주는 범위도 스코프라고 할 수 있는 예시이다!!
그래서 똑같은 이름으로 함수를 선언하면 충돌이 일어나서 에러가 뜨는 것이였다!!!

let

let의 큰 특징으로는 재할당가능 재선언불가능이 있다!!!!
그리고 scope의 유효범위는 Block Scope다.

예시

let fruit = 'apple';
console.log(fruit); // 'apple'

let fruit = 'banana';
console.log(fruit); // SyntaxError: Identifier 'fruit' has already been declared

fruit = 'peach';
console.log(fruit); // 'peach' 

const

const는 재할당 재선언 불가능이 가능하다!
그리고 scope의 유효범위는 let과 똑같이 Block Scope이다!!!

예시

const fruit = 'apple';
console.log(fruit); // 'apple'

const fruit = 'banana';
console.log(fruit); // SyntaxError: Identifier 'fruit' has already been declared

fruit = 'peach'; // TypeError: Assignment to constant variable.
console.log(fruit); // 'apple' 

var

var는 재할당 재선언 모두 가능하고 scope의 유효범위는 let과 const랑은 다르게 Function Scope이다!

예시

var fruit = 'apple';
console.log(fruit); // 'apple'

var fruit = 'banana';
console.log(fruit); // 'banana'
profile
응애

0개의 댓글