학습 내용 정리/javascript
함수를 반환하는 함수
verdantjuly
2023. 5. 23. 12:44
728x90
문제
아래의 코드에서 왜 X가 undefined 가 아닌지 모르겠다.
function createAdder (num){
return function(x){
return x + num;
}
}
const addFive = createAdder(5);
console.log("addFive: " + addFive(10)); //15
시도
변수에 값을 할당하지 않고 5를 더해 본다. > NaN
let con
console.log("con: " + con); //undefined
let five = con +5
console.log( "five: " + five); //NaN
이해가 되지 않아 튜터 님께 질문함
> 튜터 님 : 스코프의 개념을 다시 공부해 보는 것도 좋을 것 같습니다
스코프의 개념을 공부하고 나서 한 생각
function(x)는 애초에 x가 비어 있는 값이 아니다.
createAdder(5)에서 5라는 값을 줬다. // 알고보니 x가 아니라 num에 준 것임.
> 튜터 님 : 자세히 설명 드리겠습니다
해결
튜터 님 : 함수가 작동하는 원리를 순차적으로 설명해 주심
console.log(addFive) 를 같이 해 봄. // 함수를 리턴한다.
내가 이해한 내용 : 함수 안에 함수를 주고 num의 값 5와 x의 값 10을 주었기 때문에 undefined 가 나오지 않는다.
알게 된 점
한 줄 한 줄 과정을 살피고 이해가 안 되는 부분은 console.log()로 찍어 보자.
변수를 선언하면 그 값의 타입이 뭔지 생각해 보자.