- 변수에 할당(assignment) 할 수 있다.
- 다른 함수의 인자(argument)로 전달될 수 있다.
- 다른 함수의 결과로서 리턴될 수 있다.
함수를 변수에 할당할 수 있기 때문에, 함수를 배열의 요소나 객체의 속성값으로 저장할 수 있다. 이는 함수를 데이터(string, number, boolean, array, object)를 다루듯이 다룰 수 있다는 걸 의미
'함수를 리턴하는 함수'와 '함수를 인자로 받는 함수'
고차 함수(higher order function)는 함수를 인자(argument)로 받을 수 있고, 함수의 형태로 리턴할 수 있는 함수
다른 함수(caller)의 인자(argument)로 전달되는 함수가 콜백 함수(callback function)
중첩된 배열 구조를 평탄화하기 위해 사용
const arr = arr.flat([depth])
fruits.flat()
['apple','banana',['melon']]
fruits.flat(infinity)
['apple','banana','melon']