happy cat image

everdevel

Brand New Day

login
알림X
  • 현재 댓글에 대한 답변만 표시합니다.
  • 표시할 댓글 이력이 없거나 로그인해 주세요.

EEOS

에버디벨 책을 학습할 수 있는 클라우드 개발 환경을 제공합니다.
개발환경구축없이 태블릿에서도 개발할 수 있는 책의 예제와 프로젝트
오직 당신을 위한 스토리지, URL, DB, 무제한 트래픽
그리고 웹기반 개발환경을 제공합니다.

더 알아보기
에버디벨이 만든 무료 클라우드 개발환경을 소개합니다.

hoisting(호이스팅)

건축분야에서 호이스팅이라는 단어를 자주사용합니다. hoisting는 들어올리기 라는 뜻이지요.

자바스크립트에서도 이 단어가 사용됩니다.

우리는 이미 호이스팅에 대해서 학습을 했습니다.

함수표현식

위의 강좌에서 마지막 부분에 설명한 내용이 호이스팅입니다.

함수선언식으로 선언한 함수나 변수 선언은 최상단으로 끌어올립니다.

그래서 코드상에서 함수를 호출후에 함수 선언식으로 선언한 함수를 호출해도 작동을합니다.

단, 함수표현식은 그렇지가 않습니다.

그럼 여기에서 다시한번 해봅시다.

함수선언식, 함수표현식, 화살표표기법이 어떻게 나오는지 봅시다.

함수선언식 호이스팅

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>EVERDEVEL - JavaScript</title>
<script>
    hoisting();

    function hoisting(){
        document.write('I am here');
    }
</script>
</head>
<body>
</body>
</html>

로그인을 하지 않은 상태에서도 이제 위의 코드를 실행 할 수 있습니다.
PLAY CODE 버튼 클릭 후 광고없이 횟수제한없이 코드를 실행 할 수 있습니다.
LOGIN

결과

JavaScript hoisting

위와 같이 함수 선언전에 함수를 호출해도 결과가 잘 나타납니다.

함수표현식 호이스팅

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>EVERDEVEL - JavaScript</title>
<script>
    hoisting();

    const hoisting = function(){
        document.write('I am here');
    }
</script>
</head>
<body>
</body>
</html>

로그인을 하지 않은 상태에서도 이제 위의 코드를 실행 할 수 있습니다.
PLAY CODE 버튼 클릭 후 광고없이 횟수제한없이 코드를 실행 할 수 있습니다.
LOGIN

결과

JavaScript hoisting

앞에서 했던것과 같이 함수는 작동하지 않습니다.

화살표표기법 호이스팅

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>EVERDEVEL - JavaScript</title>
<script>
    document.write(hoisting());

    const hoisting = () => 'I am here';
</script>
</head>
<body>
</body>
</html>

로그인을 하지 않은 상태에서도 이제 위의 코드를 실행 할 수 있습니다.
PLAY CODE 버튼 클릭 후 광고없이 횟수제한없이 코드를 실행 할 수 있습니다.
LOGIN

결과

JavaScript hoisting

화살표표기법도 먼저 함수를 선언하고 호출되어야하네요.

호이스팅은 이외에도 스코프에 대한 개념도 알면 좋습니다.

스코프(scope)는 범위를 뜻하지요.

그럼 다음시간에 스코프에 대해서 알아봅시다.

봐주셔서 감사합니다. 문의 또는 잘못된 설명은 아래의 댓글에 부탁드립니다.


    
    

강좌로 돌아가기

댓글 0개

정렬기준