본문 바로가기
알아두면 쓸데없는 신비한 코드

자바스크립트 var와 let ,const 차이

by Django_ 2020. 6. 30.
반응형

저는 주로 파이참을 아주 좋아합니다~ 

실수하는 부분을 잘 찾아주거든요~

그런데 최근 업데이트가 되면서 자바스크립트 문구중에 "var"에 밑줄이 쳐지더라고요

음 코드에 밑줄이 생기면 뭔가 깔끔하지 않은 느낌이 들죠

var 에 마우스를 올리면 이런 문구가 뜨게됩니다.

 

'var' used instead of 'let' or 'const'

음....  

Ctrl + R (일괄변경시 유용)

.......

그후 not defined의 연속적인 에러.... 헉....

역시 문서를 읽어보는게 중요하다고 또 느끼며 문서를 찾아봤습니다.

 

var = Function Level Scopelet , const = Block Level Scope

 

var는 함수 레벨의 범위를 갖는다는것이고 let과 const는 블록 레벨의 범위를 갖는다는것입니다.

편한 비교를 위해 let과 const는 같은 레벨이니 let만으로 테스트를 해봤습니다.

예를들어 이런 코드를 실행하게 되면

function test(){
if(true){
    var x = 10;
    let z = 10;
}
}
test()
console.log(x);
console.log(z);

아래와 같은 결과를 얻을 수 있습니다.

 

이런 코드는 어떨까요~?

if(true){
    var k = 10;
    let y = 10;

}

console.log(k);
console.log(y);

이것도 역시 var는 정상적으로 출력이 되지만 let은 출력이 되질 않습니다.

var는 함수가 없다면 글로벌 변수인것같습니다.

 

음...

결과적으로 let과 const가 자원을 효율적으로 할당하고 반납한다고 할 수 있을 것 같습니다.

이전까지는 django로 서버 사이드쪽만 신경쓴다고 그냥 전부 var로 때려 넣었지만

더 나은 사용성을 위해 var와 let, const를 섞어서 사용해야할것같습니다.

반응형

댓글