12. 함수

2024. 11. 2. 14:48자바스크립트(Javascript)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>함수</title>
</head>
<body>
    <script>
        func1() //함수 선언식으로 만든 함수는 생성전에 호출해도 호출이 가능함

        function func1(){
            console.log(`func1() 호출`)   // func1() 호출
                                         // func1() 호출
                                        // func1() 호출
        }

        function func2(num1, num2){
            console.log(`func2() 호출`)   // func2() 호출
            return num1 + num2
        }

        func1()
        func1()

        const result = func2(10, 3)
        console.log(result)           // 13

        // 함수의 메모리 주소를 전달하는 방법
        const sum = func2
        console.log(sum(10, 3))          // 13

        // 함수의 작성팁
        // 조건식이 있을 때 조건을 만족하지 않은 경우를 함수 도입부분에서 모두 처리 후 미리 종료
        function func3(num){
            if(num < 0) return
            return num
        }

        console.log(func3(10))            // 10
        console.log(func3(0))            //  0
        console.log(`-----------------`)

        //매개변수의 기본값은 undefined
        function func4(num1, num2){
            console.log(num1)                          // undefined
            console.log(num2)                         // undefined
            console.log(arguments)        // Arguments [callee: ƒ, Symbol(Symbol.iterator): ƒ]
            console.log(arguments[0], arguments[1])  // 10 3
        }

        console.log(`-----------------`)

        func4()
        func4(10,3)
        console.log(`-----------------`)

        function func5(num1=0, num2=0){
            console.log(`${num1} + ${num2} = ${num1 + num2}`)   // 0 + 0 = 0
        }

        func5()
        func5(10,3)
        func5(10)
        //원하는 매개변수를 넘길수 없다
        func5(num2=10)
        
        console.log(`-----------------`)

        function func6(...nums) {
            console.log(`nums의 값 : ${nums}`)           // nums의 값 : 30,50,80,100,40
            console.log(`nums의 타입 : ${typeof(nums)}`) // nums의 타입 : object
            
            for(let i in nums){
                console.log(`i:${i}, nums: ${nums[i]}`)  
                // i:0, nums: 30
                // i:1, nums: 50
                // i:2, nums: 80
                // i:3, nums: 100
                // i:4, nums: 40 
            }
        }

        func6(30, 50, 80, 100, 40)
        console.log(`-----------------`);

        //함수를 만들고 바로 실행하기
        (function(){
            console.log(`실행되고 사라짐`)            // 실행되고 사라짐
        })(); //앞뒤로 끝에 세미콜론을 꼭 붙여줘야함
    
        //함수 표현식 : 함수를 실행보다 먼저 선언해야함
        const func7 = function(){
            console.log(`func7() 호출`)        // func7() 호출
        }

        func7()
    </script>
</body>
</html>
728x90
LIST

'자바스크립트(Javascript)' 카테고리의 다른 글

14. 객체  (0) 2024.11.02
13. 화살표 함수  (0) 2024.11.02
11. 배열과 반복문  (2) 2024.11.02
10. 배열  (2) 2024.11.01
9. 반복문 - for 문  (0) 2024.11.01