위 코드는 randomNumbers 변수에 .filter() 메서드를 사용하는 코드인데요
randomNumber가 콜백함수가 맞나요?
맞다면 콜백함수를 사용하는 이유와 return을 사용하는 이유가 궁금합니다.
3가지 다 같은 결과가 나오는데 이유가 뭔지 알려주시면 감사드리겠습니다!!
제가 다른 글에서 쓴 답글이 거의 똑같은 답변이 되리라 생각합니다.
다만 두번째 경우엔 변수의 범위(주로 영어로 scope라고 많이 함)가 자바스크립트 언어에서 어떻게 작용하는지 이해가 필요한 부분입니다.
randomNumbers
라는 변수는 두번째의 경우 Array.prototype.filter
를 호출하는 객체와, 그 filter
함수 안에서 호출되는 함수의 매개 변수 randomNumbers
가 있습니다. 이 경우 익명 함수 안의 randomNumbers
가 내부 스코프로서 작용합니다.
그렇다면 변수 접근의 우선권이 자바스크립트에선 내부 스코프에게 있으므로, 외부의 randomNumbers
는 함수 안에서 아무런 변화가 없습니다. 물론 함수 안에서 명령을 실행도 어떠한 충돌이 없고요.
다만 외부의 randomNumbers
를 내부 스코프에서 접근하고 싶다면, 자바스크립트에선 변수 이름을 다르게 해서 외부 변수에 접근하는 방법밖에 없습니다.
아직 개념을 배우고 있는 단계라 부족한게 많은데 도움이 되었습니다 정말 감사드려요!!