흰둥이는 코드를 짤 때 짖어 (왈!왈!왈!왈!왈!왈!왈!왈!왈!왈!왈!)

(JS) 사용자 정의 함수 본문

HTML, CSS, JS

(JS) 사용자 정의 함수

흰둥아솜사탕 2023. 4. 6. 18:27
728x90
반응형

사용자 정의 함수(function)

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

함수 선언식

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

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

함수 표현식 (추천)

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

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

디폴트 매개변수

  • 매개변수의 값을 설정하는 것
  • 매개변수의 값을 정하지 않으면 기본값을 변수에 저장
function 함수명(매갭녀수1=값1, 매개변수2=값2, ...){
    함수가 호출되었을 때 실행할 문장;
    ...
    return 값;

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

나머지 매개변수

  • 생략 접두사(...)를 사용하여 특정 위치의 인수부터 마지막 인수까지 한 번에 지정할 수 있음
function 함수명(매개변수1, ...매개변수2){
    함수가 호출되었을 때 실행할 문장;
    ...
    return 값;
}

함수명(값1, 값2, 값3, 값4, 값5)

호이스팅(hoisting)

  • 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것
  • var로 선언한 변수의 경우 호이스팅 시 undefined로 변수를 초기화
  • let과 const로 선언한 변수의 경우 호이스팅 시 변수를 초기화하지 않음
함수정의                                    인터프리팅 결과
func1();                                function func1(){}
...                    함수 호이스팅            ...;
function func1(){       ----->          }
    ...;
}                                       func1


func2();                                        let func2;
let func2 = function(){     변수 호이스팅        func1()
    ...;                        ---->           function func2(){
}                                                      ...;
                                                }

화살표 함수

  • function 키워드를 사용하여 함수를 만드는 것보다 간단하게 표현
  • 화살표 함수는 항상 익명
매개변수가 없을 경우
const 함수명 = () => {
    함수가 호출되었을 때 실행될 문장;
    ...
}

const 함수명 = () => 함수가 호출되었을 때 실행될 문장;

매개변수가 있을 경우
const 함수명 = (매개변수1, 매개변수2, ...) => {
    함수가 호출되었을 때 실행될 문장;
    ...
}

const 함수명 = (매개변수1, 매개변수2, ...) => 함수가 호출되었을 때 실행될 문장;

✅ 매개변수가 1개인 경우는 소괄호를 생략할 수 있음
const 함수명 = 매개변수1 => 함수가 호출되었을 때 실행될 문장;
728x90
반응형

'HTML, CSS, JS' 카테고리의 다른 글

(JS) 객체2  (0) 2023.04.07
(JS) 객체  (0) 2023.04.06
(JS) 배열  (0) 2023.04.05
(JS) 연산자, 제어문  (0) 2023.04.05
(JS) 변수, 상수, 데이터타입, 대화상자  (0) 2023.04.04
Comments