문법의 간결함 !

기본함수

// 함수 선언식
function main() {
    console.log("hello");
}

// 함수 표현식, 익명함수를 선언함과 동시에 변수 main에 할당
const main = function() {
    console.log("hello");
}

화살표 함수

// 함수 표현식에서 function 지우고 화살표 붙임
const main = () => {
    console.log("hello");
}

단일 표현식

// 함수 표현식
const add = function(a, b) {
    return a + b;
}

// 화살표 함수
const add = (a, b) => {
    return a + b;
}

**// 중괄호, 리턴 생략
const add = (a, b) => a + b; // 결과값 자동 리턴**

매개변수가 1개

// 함수 표현식
const print = function(text) {
    console.log(text);
}

// 화살표 함수
const print = (text) => console.log(text);

**// 매개변수 1개면 소괄호 생략 가능
const print = text => console.log(text);**

매개변수가 없거나 2개 이상일 때, 생략 불가능

1개일 때만, 생략할 수 있다!


리턴 값이 객체 일 때

// 화살표 함수
const getObject = () => {
    return { name: "승희" }
}

// 한줄이니 중괄호, 리턴 생략 가능?
const getObject = () => { name: "승희" }

**// 리턴값이 객체일 경우 소괄호를 붙여줘야 함
const getObject = () => ({ name: "승희" })**

argument 가변인자

인자를 담고 있는 배열 형태의 객체, 정확하게 배열은 아님 argumnets -> 인자의 갯수가 정해지지 않은 가변인자가 전달되는 함수를 쓸 때 유용