상세 컨텐츠

본문 제목

혼공단 자바스크립트 4주차 미션 - Chapter 05

Developer/혼공단

by cepiloth 2022. 2. 2. 08:52

본문

728x90
반응형

기본미션

202쪽의 <윤년을 확인하는 함수 만들기> 예제를 실행하여 2022년이 윤년인지 확인하는 결과 인증샷

윤년을 확인하는 함수 만들기

보통 2월은 28일까지 있지만 몇 년에 한 번 29일까지 있기도 합니다. 이런 해를 윤년(leap year)이라고 부르고 다음과 같은 특징이 있습니다.

  • 4로 나누어 떨어지는 해는 윤년이다.
  • 하지만 100으로 나누어 떨어지는 해는 윤년이 아니다.
  • 하지만 400으로 나누어 떨어지는 해는 윤년이다.

 

윤년인지 확인하는 함수

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <script>
            function isLeapYear(year) {
                return (year % 4 === 0) && (year % 100 !== 0) || (year % 400 ===0)
            }

            console.log(`2022년은 윤년일까? === ${isLeapYear(2022)}`)
        </script>
    </head>
    <body>

    </body>
</html>

 

출력 결과

2022년은 윤년이 아니다.

 

선택미션

p.240 확인 문제 1번 풀고, 풀이 과정 설명하기

filter 함수의 콜백 함수 부분을 채워서 (1) 홀수만 추출, (2) 100 이하의 수만 추출, (3) 5로 나눈 나머지가 0인 수만 추출해주세요. 그리고 코드의 실행 결과를 적어보세요.

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        
        <script>
            //변수를 선언합니다
            let numbers = [273, 25, 75, 52, 103, 32, 57, 24, 76]

            // 처리 합니다.
            numbers
                .filter((value) => (value & 0x01) && (value <= 100) && (value % 5 === 0))
                .forEach((value) => {
                    console.log(value)
                })
        </script>
    </head>
    <body>

    </body>
</html>

 

먼저 문제에서 요구 사항인 (1) 홀수만 추출, (2) 100 이하의 수만 추출, (3) 5로 나눈 나머지가 0인 수만 추출 3가지 항목을 처리하기 위해서는 콜백 함수와 filter 함수 두 가지를 이해해야 한다.

콜백 함수

자바스크립트는 함수도 하나의 자료형이므로 매개변수로 전달할 수 있다. 이렇게 매개변수로 전달하는 함수를 콜백 함수라고 한다. 즉 매개변수를 함수로 사용할 수 있다.

filter 함수

filter() 메서드는 배열이 갖고 있는 함수로 filter() 메서드는 콜백 함수에서 리턴하는 값이 true 인 것들만 모아서 새로운 배열을 만드는 함수이다.

문제의 요구사항을 filter 함수로 구현하면 아래와 같다.

<script>
    //변수를 선언합니다
    let numbers = [273, 25, 75, 52, 103, 32, 57, 24, 76]

    // 처리 합니다.
    numbers
        .filter((value) => 
            (value & 0x01) &&  // (1) 홀수 
            (value <= 100) &&  // (2) 100 이하의 수
            (value % 5 === 0)) // (3) 5로 나눈 나머지 값이 0 인 수
</script>

filter 함수를 사용하여 문제에서 주어진 요구사항에 맞게 처리하였다. 이외에도 callback 함수를 활용하는 함수는 forEach(), map() 등이 있다. callback 함수는 javascript 에서 비동기 처리 시 매우 유용하다고 한다. 자세한 내용은 콜백 함수(Callback Function)에 대한 정리를 참고 바란다.

728x90
반응형

관련글 더보기

댓글 영역