강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

Donte님의 프로필 이미지
Donte

작성한 질문수

[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문

event 객체로 중복 제거하기

고차함수 부분 질문있습니다!!

작성

·

226

0

항상 좋은 강의 해주셔서 감사합니다.
교재 217p에서 func() 함수와 innerFunc3() 여기서요! 다른 부분은 다 이해가 가는데

 

const innerFunc3 = func()에서 func에서는 매개변수가 필요한데 매개변수가 전달이 안된거고,
func()는 () => { console.log(msg) }라고 이해했습니다.
예제를 실행해보면 innerFunc3() 은 undefinde가 잘 나오는데

제가 추가적인 예시를 한번 만들어봤습니다.

const a = () => { console.log(msg)}이렇게 하고 a()는 에러가 나더라고요..
교재 예제에서는 func()이렇게 했을 때 매개변수가 전달이 되지 않았는데도 에러가 발생하지 않은 이유가 궁금합니다

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

자바스크립트 에러는 해당 줄이 실행되면 에러가 발생하는 겁니다.

func()에서는 console.log(msg)가 실행이 안 되었으므로 에러가 있다 하더라도 에러가 발생하지 않습니다.

참고로 func()를 했을 때 console.log(msg)는 존재하는 겁니다. msg에 undefined를 전달하신 거고요. func()는 () => { console.log(undefined) }랑 마찬가지입니다.

아래 b에서 에러나는 이유는 msg라는 변수가 선언이 안 됐는데 사용해서 그렇습니다.

 

Donte님의 프로필 이미지
Donte
질문자

항상 빠르고 친절한 답변 너무 감사합니다

Donte님의 프로필 이미지
Donte

작성한 질문수

질문하기