콜백함수와 return의 사용 이유가 뭔가요? - JS Iterator

11

위 코드는 randomNumbers 변수에 .filter() 메서드를 사용하는 코드인데요
randomNumber가 콜백함수가 맞나요?
맞다면 콜백함수를 사용하는 이유와 return을 사용하는 이유가 궁금합니다.
3가지 다 같은 결과가 나오는데 이유가 뭔지 알려주시면 감사드리겠습니다!!

제가 다른 글에서 쓴 답글이 거의 똑같은 답변이 되리라 생각합니다.

다만 두번째 경우엔 변수의 범위(주로 영어로 scope라고 많이 함)가 자바스크립트 언어에서 어떻게 작용하는지 이해가 필요한 부분입니다.

randomNumbers라는 변수는 두번째의 경우 Array.prototype.filter를 호출하는 객체와, 그 filter 함수 안에서 호출되는 함수의 매개 변수 randomNumbers가 있습니다. 이 경우 익명 함수 안의 randomNumbers가 내부 스코프로서 작용합니다.

그렇다면 변수 접근의 우선권이 자바스크립트에선 내부 스코프에게 있으므로, 외부의 randomNumbers는 함수 안에서 아무런 변화가 없습니다. 물론 함수 안에서 명령을 실행도 어떠한 충돌이 없고요.

다만 외부의 randomNumbers를 내부 스코프에서 접근하고 싶다면, 자바스크립트에선 변수 이름을 다르게 해서 외부 변수에 접근하는 방법밖에 없습니다.

아직 개념을 배우고 있는 단계라 부족한게 많은데 도움이 되었습니다 정말 감사드려요!!