Hoisting
2020. 3. 6. 10:53ㆍTypeScript&JavaScript/JavaScript
'use strict'
//일반적인 함수 호출방법
function say(word) {
console.log(word)
}
say('hi')
//hoisting의 특징
say('hi')
function say(word) {
console.log(word)
}
자바스크립트는 V8엔진을 통해 컴파일되는 과정에서 선언된 변수와 함수를 메모리에 '먼저' 저장한다. 그렇기 때문에 선언과 호출의 순서가 바뀌어도 정상적으로 동작하는 특징이 있다. 그러나 이러한 호이스팅 기능은 편리하면서도 코드가 길어지고 복잡해질경우 가독성을 떨어뜨리고 헷갈리게 만드는 부분이 있고, ES6이후 블록스코프/함수스코프의 차이 때문에 호이스팅의 특징을 살리기 보다는 선언과 호출 순서를 지키는 편이 더 낫다는게 개인적인 생각이다.
위 코드는 둘 다 hi가 잘 출력되는 호이스팅의 예시이다.
'TypeScript&JavaScript > JavaScript' 카테고리의 다른 글
자바스크립트에서 배열과 객체를 다룰 때 유용한 문법과 함수정리-1 (0) | 2020.04.15 |
---|---|
Arrow Function (0) | 2020.03.09 |
Typeof (data type checking) (0) | 2020.03.05 |
String (0) | 2020.03.05 |
Templete String (0) | 2020.03.05 |