컴퓨터는 이 재귀함수가 몇번 호출됐는지 stack
에 기록함
Maximum call stack size exceeded = 스택오버플로우
탈출코드
이것들에 대한 제동장치 = 반복문과 비슷 (테스트 구문, 업데이트 구문)
그래서 재귀함수는 반복문으로 변환할 수 있음
return
으로 종료되고 나오는 상태에서 출력했기 때문에 1 2 3
console.log(num)
이 재귀함수 앞줄에 쓰여지면 3 2 1
콜백함수
, 이 콜백함수를 실행하는 함수를 고차함수
라 한다Q. 그럼 굳이 왜 콜백함수를 매개변수로 넘길까?
A. 콜백함수를 통해서 수행할 함수를 다이나믹하게 변경할 수 있기 때문!
call by value = 값에 대한 복사
call by reference
매개변수로 전달하는 주체가 원시타입
인지, 객체타입
인지 이해하기
false
true
그럼 함수 자체도 요소로서 저장이 되겠네? 혹은 객체의 속성으로 저장이 되겠구나 알 수 있음
-> 객체, 배열 안에 저장가능