본문 바로가기
JavaScript

[JavaScript] var 가 아닌 let, const 만 쓸 이유?

by 꾸압 2022. 5. 21.

 

[이유]

var 선언은 너무 유동적이며 쉽게 변경가능하기에, 코드가 길어지면 오류를 만들어내도 오류라고 안 뜰 수 있으며 찾기도 어렵다.

ES6 버전을 기점으로 let, const 기능이 생겼다. var 와는 다르게 나름 strict 한 타입들이다.

strict 한 만큼 오류에 강하니 쓸만하다.

 


 

[문제 여지]

(1) 유효 범위

  var : 전역 변수

  let, const : 지역 변수

  ==> 함수가 있을 때 지역 변수는 함수 밖으로 못 나간다. 지역 변수는 함수 밖으로 나간다...

    (1) var로 할당한 변수 'A'가 있다고 하자.

    (2) 'A' 변수는 같은 naming의 var 변수 'A*'를 가진 function을 지난다. 

    (3) 함수를 나오니 변수 A는 A*가 되었다. 소름... 도플갱어가 몸 뺏은 기괴한 느낌(이제 A는 없어 ^^)

 

(2) 변수 재선언 기능

  var는 변수 재선언이 가능하여 code 중간에 같은 naming인 변수에 다른 값을 넣으면 에러가 안 난다... 

  java를 쓴 입장에선 그렇게 하면 겹치는 이름 있다며 에러 뜬다.

  코드가 길어지다보면 개발자가 깜빡해서 같은 이름을 또 쓸 수 있다.

  그로 인해 개발자가 의도한게 아닌데 바뀌면 안 될 변수 값이 변했다? 근데 error 가 없다??  got crazy, got mad

 


 

<참조 1> https://www.daleseo.com/js-var-issues/

<참조 2> https://www.youtube.com/watch?v=61iolhWgQt0 

 

댓글