모던자바스크립트 Deep Dive에서 발췌한 함수에 관한 내용을 적어보자
// 함수 정의
function add(x, y) {
return x + y;
}
// 함수 호출
add(2, 5);
------
add : 함수이름
x, y : 매개변수
x + Y : 반환 값
2, 5 : 인수
// 변수에 함수 리터럴을 할당
var f = function add(x, y) {
return x + y;
};
변수 선언문과 함수 정의
변수는 '선언'한다고 했지만 함수는 '정의'한다고 표현. 함수 선언문이 평가되면 식별자가 암묵적으로 생성되고 함수 객체가 할당된다. 따라서 ECMAScript 사양에서도 변수는 선언, 함수에는 정의라고 표현한다.
// 함수 선언문
function add(x, y) {
return x + y;
}
// 함수 호출
add(2, 5);
console.log(add(2, 5));
// 기명함수 표현식
var add = function foo(x, y) {
return x + y;
};
// 함수 객체를 가리키는 식별자로 호출
console.log(add(2, 5)); // 7
// 함수 이름으로 호출하면 참조에러
console.log(foo(2, 5)); // ReferenceError
-----
// 익명함수 표현식도 가능
var add = function(x, y) {
return x + y;
};
console.log(add(2, 5)); // 7
Function 생성자 함수 : JS가 기본 제공하는 빌트인 함수인 Function 생성자 함수에 매개변수 목록과 함수 몸체를 문자열로 전달하면서 new 연산자와 함께 호출하면 함수 객체를 생성해서 반환
생성자 함수
생성자 함수는 객체를 생성하는 함수를 말한다. 객체를 생성하는 방식은 객체 리터럴 이외에 다양한 방법이 있다.
var add = new Function('x', 'y', 'return x + y');
console.log(add(2, 5));
const add = (x, y) => x + y;
console.log(add(2, 5));