Study/Javascript

[Javascript 개념] 3. 함수

33e 2025. 5. 26. 20:30

함수

중복으로 작성 된 코드를 묶어 이름을 붙여 간편하게 호출할 수 있게 만드는 구성 요소

목차


    1.함수를 생성하는 방법

    함수를 생성하는 방법으론 함수 선언식, 함수 표현식 그리고 함수 표현식을 간단히 표현한 화살표 함수가 있다.

    1 - 1. 함수 선언식

    // 함수 선언문
    function name(parameter){
    	console.log("이건 함수입니다");
    }

    🚨함수는 매개변수(parameter)를 이용해 필요한 값을 전달 받는다.

    매개변수가 여러 개일 시 콤마(,)로 구분해준다.


    1 - 2. 함수 표현식

    변수에 함수를 하나의 값처럼 할당한다.

    let sayhi = function(){
    	console.log("함수 표현식입니다")
    };

    🚨함수 표현식에서 익명함수를 쓰는 이유?

    함수가 변수의 값으로써 생성된 것이기 때문에 함수 이름으론 호출이 불가능 하기 때문에 생략해도 문제가 되지 않는다.

     

    작동방법

    //함수생성
    function sayHi(){
    	console.log("함수의 표현식 작동 방법")
    }
    
    //함수 복사
    let func = sayHi;
    
    func();//함수의 표현식 작동 방법 //복사한 함수를 실행(정상적으로 작동)
    sayHi();//함수의 표현식 작동 방법

    1 - 3. 화살표 함수

    함수표현식을 보다 단순하고 간결한 문법으로 만든 함수

    () 안에 인자를 받고, => 우측 {}에 표현식을 쓴다.

    let func = () => {
    	console.log("hello")
    }

     

    🚨인수가 하나밖에 없다면 괄호를 생략할 수 있다

    //두 함수가 동일하게 작동한다.
    
    let sum = (a,b)=> a + b;
    
    let sum = (a,b) => {
    	return a+b
    }

    🔎 함수 선언식 vs 함수 표현식

    차이점 함수 선언식 함수 표현식
    문법 독자적인 구문 형태로 존재 변수의 값으로 생성
    함수 생성 순서 함수 실행 전 초기화 단계에서 함수 생성 실행 흐름이 함수에 도달했을 때 생성
    호이스팅 발생여부 발생함  발생하지 않음

     

    🚨호이스팅이란?

    변수나 함수가 최상단으로 끌어올려지는 현상

    //함수 선언식
    greeting("Hee")//Welcome Hee.
    
    function greeting(name){
    	console.log(`Welcome, ${name}`)
    }
    
    //함수 표현식
    greeting("Hee")//error
    
    let greeting = function(){
    	console.log(`Welcome, ${name}`)
    }

    2. 함수를 호출하는 방법

    함수 이름 옆에 ()를 붙여 호출할 수 있다.

    function sayHi(){
    	console.log("안녕하세요");
    };
    
    sayHi();//안녕하세요

    3. 콜백함수

    자신이 아닌 다른 함수에, 인수로써 전달 된 함수

    주로 구조가 비슷한 함수를 하나로 묶어서 처리할 경우에 쓰인다.

     

    예시

     

    • 중복된 함수를 사용했을 때
    function repeat(count){
      for(let idx = 1; idx <= count; idx++){
        console.log(idx)
      }
    }
    function repeatDouble(count){
      for(let idx = 1; idx <= count; idx++){
        console.log(idx * 2)
      }
    }
    
    repeat(5) // 1 2 3 4 5
    repeatDouble(5) // 2 4 6 8 10

     

    • 콜백 함수를 사용했을 때
    function repeatFunc(count, callback){
      for(let idx = 1; idx <= count; idx++){
        callback(idx);
      }
    }
    
    repeatFunc(5, (idx) => {
      console.log(idx);
    }); // 1 2 3 4 5
    
    repeatFunc(5, (idx) => {
      console.log(idx * 2);
    });// 2 4 6 8 10

     

    📖콜백함수와 화살표함수

    화살표 함수를 사용하면, 보다 더 간결한 코드로 작성할 수 있다.

    function main(value){
    	value();
    }
    
    //일반적인 콜백함수
    function sub(){
    	console.log("콜백함수입니다")
    }
    
    main(sub())
    
    //화살표 함수를 이용한 콜백 함수
    main(()=>{
    	console.log("콜백함수입니다.")
    })

    🔎반환값

    함수 실행을 종료하고, 주어진 값을 함수 호출 지점으로 반환한다.

     

    예시

    function compare(num) {
        if (num === 0) return "num의 값이 0입니다.";
        if (num < 0) return "num의 값이 0보다 작습니다.";
        if (num >= 10) return "num의 값이 10보다 크거나 같습니다.";
        return "num의 값이 0보다 크고 10보다 작습니다";	
    }
    
    compare(15); //num의 값이 10보다 크거나 같습니다.

    🚨특정조건에 부합하지 않으면 바로 return하게 만들 수 있다 → Early Return Pattern

     

     


    출처
    효빈 - 한 방으로 끝내는 자바스크립트 강의
    Mordern Javascript Tutorial - https://ko.javascript.info/
    Mdn web Docs -https://developer.mozilla.org/ko/