var는
선언도 안했는데 음,,
이건 아직 변수는 있는데
값을 안적은거 같애 뭐 나중에 적으렴하면서
undefined가 뚜둥.

반면 let은
뭐야 let을 선언도 안했는데
값이 나오면 어떤게 이 값이라는 기야!
변수를 선언하고 값을 적어봐봐! 라고 말해줌.

이런 var의 상태를
var hoisting!!!!!!
hoisting이란 끌어올려주다라는 뜻으로
어디에 있는지 상관없이 항상 제일 위로
선언을 끌어올려주는거

이 처럼 아무리 안보이는 깊은 곳에
block을 이용해서 선언해도
어디에서나 까꿍하고 보일 수 있는 var이다.

유연성은 좋은데
규모있는 프로젝트를 하게 되면
선언되지도 않은 값들이
뿅하고 할당되는 일이 발생!!!!!!!
그건 var놈시끼 때문이다.
이런 걸 사전에 방지하기 위해
이제부터 우린 안전하게 let과 const를 쓰자!
let: mutable data type => 값을 변경 할 수 있다.
const : immutable data type => 값을 변경 할 수 없다.
많은 개발자들은 말한다.
favor immutable data type always
왠만하면 값을 변경 할 수 없는 것을 써라.
for a few reasons:
그 중 몇가지 이유를 들어보면
- security 보완상의 이유 (해커들이 다른 코드를 삽입해서 변경 할 수 있는 걸 막음)
- thread safety 동시에 많은 값을 변경하는것은 좀 위험함.
- reduce human mistakes 코드를 변경하거나 다른 개발자가 코드를 바꿀때 실수를 방지
출처
'끄적끄적' 카테고리의 다른 글
| JS) symbol : 동일한 string으로 심볼 만들고 싶을때와 그렇지 않을때 (0) | 2022.07.29 |
|---|---|
| JS) number,infinity,-infinity,NaN (0) | 2022.07.28 |
| JS) 순수 자바스크립트를 쓸 때는 코드 맨 위에 'use strict'; 를 써주자 (0) | 2022.07.28 |
| JS) Script async 이랑 defer 차이 (0) | 2022.07.28 |
| JS) 백준 : 10171번 답 (0) | 2022.07.28 |
댓글