함수 함수선언문 함수리터럴

김상현·2022년 9월 22일

함수(Function)란?

입력을 받아 출력을 내보내는 일련의 과정

프로그래밍적으로 해석하자면,

일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것이다.

함수의 구성요소로는 외부의 입력을 받는 매개변수, 입력에는 인수, 출력은 반환값이 있다.

함수에는 선언과 호출이있는데

선언(Declaration)이란?

보통 변수 선언의 경우 변수 식별자를 등록하여 메모리 셀에 undefined가 초기 할당 되는 것을 말한다.

함수의 선언(정의)방식에는 4가지가 있다.

  1. 함수 선언문
  2. 함수 표현식
  3. function 생성자함수
  4. 화살표 함수
function apple(){
	return "나는 사과"
}

호출이란?

함수의 호출의 경우에는 인수를 매개변수를 통해서 함수에 전달하고 함수

의 실행을 지시하는 것을 말한다.

원래는 문의 경우에는 호출이 불가능하지만, 자바스크립트 내부 엔

진에서 암묵적으로 함수 식별자를 함수명과 같이 생성하고 생성된 함수객

체를 그 식별자에 할당해준다. 따라서 호출이 가능하다.

function apple(x,y){
	return x + y;
    }
console.log(apple(1,2)); 

apple(1,2) === '호출'

=> 3;

함수를 사용하는 이유

1. 재사용성
2. 유지보수의 편리성
3. 코드의 가독성


함수 선언문이란?

선언이란?

보통 변수 선언의 경우 변수 식별자를 등록하여 메모리 셀에 undefined가

초기 할당 되는 것을 말한다.

문은 명령문이라고도 불리우며 컴퓨터에 실행하기위해 내리는 최소실행단위라고 보면 된다.

(이후에 진행되는 초기화는 원시타입이나 참조타입의 값을 할당 혹은 참조 하는 것을 말한다.)

값이란 리터럴과 동의어이고 소스코드에 고정된 값을 말한다.

예) 정수리터럴, 부동소수리터럴, 객체리터럴, 함수리터럴, undefined리터럴 . . .


따라서 함수 선언문이란

function apple(){
	return "나는 사과"
    }

값으로는 사용되지않지만 문으로써 사용되는 것을 말한다.

#물론 반환값을 통해서 값을 내보낼 수는 있지만 함수자체가 값은 아니다.

(리턴값이 있는 경우에는 값이 나오지만, 아무것도 없는 경우에는 초기값인 undefined가 나온다.)


함수 리터럴이란?

말그대로 값으로써 함수를 사용하는 것이다.

값으로 사용한다는 것은 변수에 할당이 가능하고 프로퍼티 값이 될 수도

있으며 배열의 요소가 될 수도 있다.

하지만 함수 선언문과 모양은 같거나 비슷하지만 본질적인 차이는 함수

리터럴은 값이기때문에 함수 선언문에서처럼 암묵적으로 식별자를

JS엔진이 할당하지않는다. 따라서, 리터럴혼자 단독으로 호출이 불가능하다.

그래서 보통 함수 표현식에 값으로써 함수 리터럴을 사용한다.

값으로 사용할 수 있는 객체는 '일급객체'라고하며, JS 함수는 일급객체이다.

0개의 댓글