본문 바로가기
끄적끄적

JS) Var hoisting이란?

by 뇸뇸 nyomnyom 2022. 7. 28.

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 코드를 변경하거나 다른 개발자가 코드를 바꿀때 실수를 방지

 

 

 

출처

 

 

댓글