함수도 값이다. 이렇게 값이 될수 있는 객체를 **일급객체**라 한다.
함수선언문과 함수 호이스팅 vs 함수 표현식
함수 선언문으로 선언한 함수도 변수 선언과 마찬가지로 호이스팅할 수 있다.
이 때 변수 떄와의 차이점은 호이스팅한 함수 변수는 undefined를 가지는 게 아니라 해당 함수를 값으로 가진다는 것이다.
그러나 함수 호이스팅은 함수를 호출하기 전에 반드시 함수를 호출해야한다는 당연한 규칙을 무시하므로 왠만하면 함수 표현식을 사용하자.
자바스크립트의 함수 특징
함수 잘 만드는 법👍
콜백 함수와 고차함수
콜백함수 : 함수의 매개변수를 통해 다른 함수의 내부로 전달되는 함수
고차함수 : 매개변수를 통해 함수의 외부에서 콜백 함수를 전달받은 함수.
var repeat = function (n, f) {
for (var i=0; i<n;i++) {
f(i);
}
}
var print = function (i) {
console.log(i)
}
repeat(5,print) // 0 1 2 3 4