함수 선언식
- 함수 선언과 동시에 함수를 정의한다
- function 키워드 옆에 반드시 함수 이름 명시
- 함수 선언식에서 함수를 선언할 때는 세미콜론(;)을 사용하지 않는다
- 함수 호이스팅의 영향을 받아 함수가 선언되기 전에도 함수가 사용된다.
function num1(a,b) {
let result = a + b
return result // 세미콜론 사용 X
}
함수 표현식(익명함수)
- 변수를 선언하고 변수에 익명함수를 할당한다.
- 함수명이 필요없다 (익명함수)
- 함수 표현식으로 함수를 선언할 때 세미콜론을 붙인다.
// num2라는 변수에 익명함수를 할당한다.
let num2 = function (a, b) { //num2는 함수명이 아니라 변수명이다!
return a + b; // 세미콜론 사용 O
}
화살표 함수 (함수 표현식의 단축법)
// 함수표현식 기본형
let num2 = function (a, b) {return a + b};
// 화살표함수 기본형
let num2 = (a,b) =>{return a + b}; //함수표현식을 화살표 함수로 변경한 것
// function 을 => 로 축약한 것
// 매개변수가 1개일 시 변수를 괄호로 묶거나 묶지않는 것은 자유이다.
let num1 = (a) or a => {return a + b}
// 매개변수가 2개 이상이거나, 없을 경우 소괄호는 필수이다.
let num1 = (a,b) => {return a + b}
let num2 = () => {return }
// 함수 본문에 return문만 있다면, return과 중괄호를 생략할 수 있다. 둘 중 하나만 생략은 불가능한다.
let num1 = (a,b) => a*b