본문 바로가기

자바스크립트2

호이스팅(hoisting) 이유와 원리 3줄 요약 + 설명 호이스팅이란 , 변수나 함수의 호출 코드가 선언 코드보다 아래쪽에 있음에도 불구하고 에러가 발생하지 않고, 마치 선언 코드가 호출 코드보다 더 위에 선언된 것과 같이 동작하는 특성을 호이스팅(Hoisting) 이라고 한다. 그리고 호이스팅은 ES6+의 let과 const 변수에서는 할 수 없고, 오직 var 변수에서만 호이스팅이 일어난다. 호이스팅이 발생하는 이유는 다음과 같다. 1. 자바스크립트 엔진은 함수선언문 해석 -> 변수 초기화 -> 코드실행 순서로 진행된다. 2. 코드를 실행할 땐 이미 함수 선언문과 변수가 생성되어있는 상태이기 때문에 3. 어디에서든 함수나 변수를 호출할 수 있다. (심지어 제일 위에서도!) 자바 스크립트 엔진은 코드를 맨 위에서부터 읽어내려오기 전에 이미 실행 컨텍스트에 식.. 2021. 10. 21.
[ES6+] var, let, const 쉽게 이해하기! 3줄요약 + 설명 let 변수와 const는 ES6 이후 스펙에서 새롭게 등장한 변수이다. 그래서 브라우저 배포용 코드같은 경우는 아직도 var 변수만 사용되는 경우도 있다고 한다. var, let, const 를 구분하는 가장 중요한 점을 요약하자면, 1. 값 변경 가능 유무 2. 스코프 범위 3.호이스팅 가능 유무 이다. 그리고 우선순위는 const -> let -> var 이라고 하니 최대한 우선순위에 맞춰서 써야하겠다! 1. 값 변경 가능 유무 var과 let은 값이 선언된 이후에 값을 변경할 수 있지만, const는 생성할 때 선언된 초기값을 변경할 수 없다. 2. 함수스코프 vs 블록스코프 var은 함수 스코프를 가지지만, let과 const 변수는 블록 스코프{ }를 가진다. 3. 호이스팅 가능 유무 var은.. 2021. 10. 19.