콜백함수란
다른 코드의 인자로 넘겨주는 함수이다
인자로 넘겨준다는 것은 콜백함수를 넘겨받는 코드가 있다는 뜻이다
제어권
호출 시점에 대한 제어권을 갖는다.
setInterval()
: 반복해서 메개변수로 받은 콜백함수의 로직을 수행
var count = 0;
var timer = setInterval(function () {
console.log(count);
if (++count > 4) clearInterval(timer);
}, 300);
/* 결과 : 0.3초 간격으로
0
1
2
3
4
*/
<보기 편하기>
var count = 0;
var cbFunc = function () {
console.log(count);
if (++count > 4) clearInterval(timer);
};
var timer = setInterval(cbFunc, 300);
map
함수
ar newArr = [10, 20, 30].map(function (currentValue, index) {
console.log(currentValue, index);
});
console.log(newArr);
/* 결과 :
10 0
20 1
30 2
[ undefined, undefined, undefined ]
*/
undefined
가 나온 이유는 return
을 하지 않았기 때문이다.
값이 없는 것을 할당하였기 때문이다.
var newArr = [10, 20, 30].map(function (currentValue, index) {
console.log(currentValue, index);
return currentValue + 5;
});
console.log(newArr);
/* 결과 :
10 0
20 1
30 2
[ 15, 25, 35 ]
*/
var newArr = [10, 20, 30].map(function (index, currentValue) {
console.log(index, currentValue);
return currentValue + 5;
});
console.log(newArr);
/* 결과 :
10 0
20 1
30 2
[ 5, 6, 7 ]
*/
currentValue에 5씩 더해지는 게 아니고 index에 더해졌다.
컴퓨터는 currentValue, index 이 순서로 인식한다.