JS

221228 JS 함수-선언적 함수, 호이스팅

주영재 2022. 12. 28. 15:07

함수

자바스크립트에서 함수는 1급 최상위 함수임
객체지향 프로그래밍 언어에서 메서드의 기능보다 훨씬 더 많은 기능을 한다.
js는 함수가 메인. 함수를 잘 해야 함.

함수 종류
-선언적 함수(이름이 있는 함수)
-익명함수(이름이 없는 함수)



선언적 함수
function name(매개변수) {
         //return true;
}

접근제어자, 반환타입 없음
매개변수도 적지 않을 수 있으며, 매개변수 데이터타입도 적지 않음
리턴도 적어도 되고 안적어도 됨. 자동으로 undefined 반환



선언적 함수는 함수선언 이전에 호출하여도 에러를 발생시키지 않음
당겨서 호출이 가능(호이스팅)->선언적 함수에서만 가능하다.

선언적 함수를 변수에 저장할 수도 있다.

function method3(){
   alert("method3실행");
}

var a=method3;
a();



★선언적 함수를 a에 저장할 때 변수 선언 이후에 호출해야 함!
변수에 저장할때 =함수()가 아니라 =함수, 이후 변수();로 호출하는것.

var a=method();가 아니라 var a=method;로. 이후에 a();를 씀

 

<!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>Document</title>
</head>
<body>
    <script>
        func1();//호이스팅(선언적함수에서 가능)
        var result=func2;//함수의 return
        console.log(result());
        console.log(func3(1,2,3));



        function func1(){
            console.log('func1 실행');
        }
        
        function func2(){
            console.log('func2실행');
            return 'func2반환';
        }

        function func3(a, b, c){
            console.log('func3 실행')
            return a+b+c;
        }

        //함수를 변수에 저장할 수 있습니다.
        var a = func1;
        console.log(typeof a);
        console.log(a);
        a();//a의 호출

        


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