본문 바로가기
Web/JavaScript

[JavaScript] 사용자 정의 함수(function) - 함수 선언과 함수 호출

by coding-choonsik 2023. 4. 11.
728x90
반응형
SMALL

1. 사용자 정의 함수(function)

  • 하나의 특별한 목적의 작업을 수행하도록 설계된 독립적인 블록
  • 필요할 때마다 호출하여 해당 작업을 반복해서 수행할 수 있음
  • 코드를 재활용하기 위해 사용

 

1-1. 함수 표현 방법

1) 함수 선언문

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

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



2) 함수 표현식 

📍 함수표현식으로 사용하는 것을 권장함!

 

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

변수명(값1, 값2...)


1-2. 디폴트 매개변수

  • 매개변수의 값을 설정하는 것
  • 매개변수의 값을 정하지 않으면 기본값을 변수에 저장

 

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

    return값
}

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

1-3. 나머지 매개변수

  • 생략 접두사(...)를 사용하여 특정 위치의 인수부터 마지막 인수까지 한 번에 지정할 수 있음

 

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

    return값
}

함수명(값1, 값2, 값3, 값4, 값5); 
//값1은 매개변수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>함수</title>
</head>
<body>
    <h2>함수</h2>
    <script>
        function func1(){
            console.log(`func1() 호출!`)
        }

        func1()
        func1()
        console.log('----------------')

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

        func2(3)
        func2()  // undefined
        func2('apple')
        func2(true)
        console.log('----------------')

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

        func3(1,100)
        func3(10)  // start= 10, end=undefined, sum변수의 초기값인 0이 나옴
        console.log('----------------')

        function func4(){
            return '🍰'
        }

        func4()
        console.log(func4())
        const cake = func4()
        console.log(cake)
        console.log('----------------')

        // 디폴트 매개변수
        function func5(num1= 1, num2=5){
            console.log(`num1의 값:${num1}, num2의 값 ${num2}`)
            console.log(`${num1} * ${num2} = ${num1 * num2}`)
        }
        func5()
        func5(10,3)
        console.log('----------------')

        //나머지 매개변수
        function func6(...x){
            console.log(`x의 값: ${x}`)
            console.log(`x의 타입: ${typeof(x)}`)
            for (i in x){
                console.log(`i의 값: ${i}, x[${i}]: ${x[i]}`)
            }
        }
        func6(30, 40, 70)  // 배열 객체로 생성

        function func7(x1,...x2){
            console.log(`x1의 값: ${x1}`)
            console.log(`x2의 값: ${x2}`)  
        }
        func7(30, 40, 70);  // 30을 제외한 나머지는 다 x2에 배열 객체로 생성

        // 보너스!!
        (function(){
            console.log(`함수를 만들고 바로 호출합니다`)
        })();

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

 

▲ 결과 콘솔창

 

 

728x90
반응형
LIST