-
javascript (var과 let의 차이)web 2022. 4. 15. 14:10
var과 let의 차이
변수는 스코프(범위)를 가진다.
var은 함수 스코프를 가지고 있다.
let은 블록 스코프를 가지고 있다.
var 테스트
function var_test() {
var a = 1;
}
console.log(a);
실행결과
a를 출력하려고 하면 에러발생.
a는 함수 안에 선언된 변수이므로 함수 밖에서는 접근할 수 없다.
함수 스코프는 함수를 경계로 접근 여부가 달라지기 때문.
let 테스트
if (true) {
let a = 1;
}
console.log(a);
실행결과
let의 경우에는 블록스코프이기 때문에 에러가 난다.
블록은 if, for, while문의 {} 중괄호를 의미한다.
블록 밖에서는 블록안의 let에 접근할 수 없다.
let과 var테스트
let
for (let i = 0; i < 5; i++) {}
console.log(i);
실행결과
var
for (var i = 0; i < 5; i++) {}
console.log(i);
실행결과
둘의 차이점
let은 블록스코프이기 때문에 블록 밖으로 값이 나오지 못하지만,
var은 함수스코프이기 때문에 i의 값이 출력된다.