본문 바로가기
Language/JavaScript

[JS] 함수 Function

Writer mintparc 2019. 11. 20.

함수선언


  • 명시적 함수 (함수 선언문) Function Statements

    함수는 자바 스크립트에서 기본적인 구성 블록 중 하나이다. 함수는 작업을 수행하거나 값을 계산하는 문장 집합 같은 자바 스크립트 절차이다. 기본적인 함수 정의 방법은 다음과 같다.

    마지막에 세미콜론(;)을 붙이지 않는다.
function 함수명(){
	실행문;
}

function 함수명(파라미터){
	실행문;
}

 

 

  • 익명 함수 (함수 표현식) Function Expressions

    일반적인 함수 선언 방식은 함수명을 명시하지만, 모든 함수가 항상 이름을 가져야 하는 것은 아니다. 함수 표현식에 의해서 작성할 수도 있다. 이러한 함수표현은 특정 변수에 저장되거나 즉시 실행 가능한 코드 블록으로서 존재한다.

    마지막에 세미콜론(;)을 붙여준다.
var 변수명 = function( ) {
	실행문;
}

var 변수명 = function(파라미터) {
	실행문;
}

 

함수 호출


명시적 함수의 경우 함수 선언 전, 후로 함수 호출을 할 수 있다.

func01();			// 선언 전 호출

function func01(){
	실행문;
}

func01();			// 선언 후 호출

 

익명함수의 경우 함수 선언 후에 함수 호출을 할 수 있다.

var func02 = function(){
	실행문;
};

func02();			// 선언 후 호출

 

 

호이스팅 Hoisting


명시적 함수의 경우 script 태그를 실행하기 전에 가장 먼저 읽히면서 선언된 변수와 함수를 메모리에 저장한다. 따라서 코드 상에서 선언 전에 먼저 함수를 호출 하더라도 호출이 가능하다. 이 개념을 호이스팅이라고 한다. 호이스팅이란 브라우저가 자바 스크립트를 해석할 때 선언을 맨 위로 끌어올려서 가장 먼저 해석하는 것을 말한다. 그러나 익명 함수의 경우 한줄 한줄 읽어들이는 인터프리터 방식으로 읽기 때문에 선언 전에는 함수를 호출할 수 없다.

댓글