본문 바로가기

JS/JavaScript

[JavaScript] 함수 만들기

728x90

함수 만들기
1. 이름만 존재하는 함수

    function 함수명() {
        함수가 호출되었을 때 실행할 문장;
        ...
    }

    함수명();

2. 매개변수가 있는 함수

    function 함수명(매개변수1, 매개변수2, ..) {
        함수가 호출되었을 때 실행할 문장;
        ...
    }

    함수명(값1, 값2, ..);

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>함수1</title>
</head>
<body>
    <h2>함수1</h2>
    <script>
        'use strict';
        function func1() {
            console.log('func1 함수 호출!');
        }

        func1();
        func1();
        func1();

        function func2(num) {
            console.log(`전달받은 매개변수의 값 : ${num}`);
        }

        func2(10);
        func2(4);

        function func3(start, end) {
            let sum = 0;
            for (let i = start; i <= end; i++) {
                sum += i;
            }
            console.log(`${start}부터 ${end}까지의 총 합 : ${sum}`);
        }

        func3(2, 15);
    </script>
</body>
</html>


 
3. 디폴트 매개변수
- 매개변수를 정하지 않으면 대신 기본값을 변수에 저장

    function 함수명(매개변수1=값1, 매개변수2=값2, ..) {
        함수가 호출되었을 때 실행할 문장;
        ...
    }

    함수명(값1, 값2 ..);
    함수명(); // function 함수명(매개변수1=값1, 매개변수2=값2, ..)에 설정한 기본값이 설정됨

4. 나머지 매개변수
- 생략 접두사(...)를 사용하여 특정 위치의 인수부터 마지막 인수까지 한번에 지정

    function 함수명(매개변수1=값1, 매개변수2=값2, ..) {
        함수가 호출되었을 때 실행할 문장;
        ...
    }

    함수명(값1, 값2, 값3 ..);

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>함수 - 2</title>
</head>
<body>
    <h2>함수 - 2</h2>
    <script>
        'use strict';
        function func1(name='무명') {
            console.log(`당신의 이름은 ${name}입니다`);
        }

        func1('김사과');
        func1(); // name이 '무명'으로 설정됨

        function func2(num1, ...num2) {
            console.log(`num1의 값 : ${num1}`);
            console.log(`num2의 값 : ${num2}`);
        }

        func2(10, 30, 20, 70, 100); // num1에는 10, num2에는 30, 20, 70, 100이 배열로 저장됨

        function func3(... jumsu) {
            let total = 0;

            for (let i in jumsu) {
                total += jumsu[i];
            }
            console.log(`총점 : ${total}`);
        }
        func3(80, 90, 70);
        func3(80, 90, 70, 100, 20);

    </script>
</body>
</html>

5. 리턴값이 있는 함수
    
    function 함수명(매개변수1, 매개변수2 ..) {
        함수가 호출되었을 때 실행할 문장;
        ...
        return 값;
    }
    
    변수 = 함수명(값1, 값2 ..);

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>함수 - 3</title>
</head>
<body>
    <h2>함수 - 3</h2>
    <script>
        'use strict';

        function func1() {
            return '⭐';
        }

        console.log(func1());
        console.log(func1());
        console.log(func1());

        const present = func1();
        console.log(present);

        function func2(num1, num2) {
                return num1 + num2;
        }

        const sum = func2(10, 5);
        console.log(sum);

    </script>
</body>
</html>


6. 화살표 함수
- function 키워드를 사용하여 함수를 만드는 것보다 간단히 표현
- 화살표 함수는 항상 익명함수

    const 함수명 = (매개변수 1, 매개변수 2 ..) => 실행문;

    함수명(값1, 값2);

    이름만 있는 함수
        const func1 = () => console.log('안녕하세요!');

    매개변수가 있는 함수
        const func2 = x => console.log(`매개변수로 전달받은 값 : ${x}`);
        const func2 = (x, y) => console.log(`두 수의 합 : ${x + y}`);

    리턴값이 있는 함수
        const func4 = (x, y) => {
            let sum = 0;
            for (let i = x; i <= y; i++) {
                sum += i;
            }
            return sum;
        }

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>화살표 함수</title>
</head>
<body>
    <h2>화살표 함수</h2>
    <script>
        'use strict';
        // 이름만 있는 함수
        const func1 = () => console.log('안녕하세요!');
        func1();

        // 매개변수가 있는 함수
        const func2 = (x, y) => console.log(`두 수의 합 : ${x + y}`);
        func2(10, 5);

        // 리턴값이 있는 함수
        const func3 = (x, y) => {
            let sum = 0;
            for (let i = x; i <= y; i++) {
                sum += i;
            }
            return sum;
        }
        const total = func3(1, 10);
        console.log(total);

        const age = Number(prompt('나이를 입력하세요'));
        const isAdult = (age > 18) ? () => alert('성인입니다.') : () => alert('미성년입니다.'); // 함수를 바로 저장.

        isAdult(); // 함수를 실행

    </script>
</body>
</html>

 

 

728x90

'JS > JavaScript' 카테고리의 다른 글

[JavaScript] 자바스크립트의 객체  (0) 2022.05.03
[JavaScript] 변수의 범위  (0) 2022.04.29
[JavaScript] 함수  (0) 2022.04.28
[JavaScript] 배열의 반복  (0) 2022.04.28
[JavaScript] Array 객체의 메소드 (프로퍼티 메소드)  (0) 2022.04.28