함수 선언은 function 키워드를 사용하여 함수를 정의하는 방식이다.
function greeting() {
console.log("Hello!");
}
greeting(); // Hello!
함수 표현식은 함수를 변수에 할당하는 방식이다. 함수 표현식은 익명 함수 또는 기명 함수로 정의될 수 있다.
// 익명 함수 표현식
const sayHello = function() {
console.log('Hello!');
};
// 기명 함수 표현식
const sayHello = function greet() {
console.log('Hello!');
};
화살표 함수는 ES6에서 도입되어 function 키워드를 사용하는 일반 함수보다 간결하게 함수를 정의하는 방식이다.
const greeting = () => {
console.log('Hello!');
}; // 마찬가지로 변수 할당이기 때문에 세미콜론 추가
greeting(); // Hello!
declaredFunction(); // This is a declared function
expressedFunction(); // Error!
// 함수 선언
function declaredFunction() {
console.log('This is a declaered function');
}
const expressedFunction = function() {
console.log('This is a expressed function');
};
// 함수 선언 - 함수 이름 반드시 필요
function add(a, b) {
return a + b;
}
// Error! 익명 함수는 독립적으로 사용할 수 없다
function(a, b) {
return a + b;
}
// 함수 표현식 - 익명 함수
const subtract = function(a, b) {
return a - b;
};
// 함수 표현식 - 화살표 함수 (익명 함수)
const multiply = (a, b) => {
return a * b;
};
// 함수 표현식 - 기명 함수
const divide = function divdeAbyB(a, b) {
return a / b;
};
// 익명 함수
const greet = function() {
console.log('Hello!');
};
// 기명 함수
const factorial = function computeFactorial(n) {
if (n<=1) {
return 1;
}
return n * computeFactorial(n-1);
};
setTimeout(() => {
console.log('This is an anonymous function');
}, 1000);
function greet() {
console.log('Hello!');
}
greet(); // Hello!
const greet = () => {
// 여기서는 함수 이름을 참조할 수 없음
console.log('Hello!');
};
greet(); // Hello!
const factorial = function computeFactorial(n) {
if (n <= 1) {
return 1;
}
return n * computeFactorial(n - 1);
};