변수는 선언한다고 하지만,

함수는 정의한다고 한다.

<aside> 📌

함수 선언문이 평가되면 식별자가 암묵적으로 생성되고 함수 객체가 할당된다.

</aside>

function sayHello() {
	console.log("Hello!");
}

함수는 단순히 이름만 만들어 놓는 것이 아니라, ‘어떤 일을 실행할지 내용을 미리 적어둔다.’ 그래서 변수를 선언한다고 표현하는 것과는 다르게, 함수를 정의한다고 말한다.

또한 코드 블록을 정의한 함수 이름에 연결한다. 이를 함수 객체가 할당된다고 표현한다.

sayHello는 단순히 코드의 이름이 아니라, ’코드 블록을 가진 객체’이다.

이 객체 안에는 실행할 코드인 console.log(”Hello!”);가 담겨있는 것이다.

함수 리터럴

function name(x, y) {
	return x + y;
};