[이유]
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
'JavaScript' 카테고리의 다른 글
[JavaScript] Input에 null 값 막기 (0) | 2023.02.05 |
---|---|
[JavaScript] 호이스팅(Hoisting) (0) | 2022.07.08 |
[JavaScript] Callback Function (콜백 함수) (0) | 2022.05.28 |
[JavaScript] Web Socket (웹소켓) (0) | 2022.05.23 |
댓글