JAVASCRIPT/자바스크립트

JS. 즉시실행함수, 파라미터 함수

(*ᴗ͈ˬᴗ͈)ꕤ*.゚ 2022. 3. 4. 12:32

개요

틀린 문제를 오답노트로 작성하다보니 너무 자세해졌다.

그래서 그냥 자바스크립트에 정리하기로 했다.

 

오답. 빈칸 채우기

{
    (____빈칸____(){
        document.write("함수가 실행되었습니다.");
    })();
    
    //출력
    //함수가 실행되었습니다.
}

정답 : function

 

즉시 실행 함수를 아느냐 묻는 문제이다

사실 저 빈칸을 빈칸으로 둬도 즉시실행함수가 작동하긴 한다.

 

오답2. 빈칸 채우기

{
    function func(__빈칸__ = "함수가 실행되었습니다."){
        document.write(str);
    }
    func();
   
    //출력
    //함수가 실행되었습니다.
}

정답 : str

 

파라미터 함수를 아느냐고 묻는 문제이다

참조사이트

http://www.tcpschool.com/javascript/js_function_parameterArgument

 

파라미터란 매개변수라는 뜻으로 

함수의 정의에서 전달받은 인수를 함수 내부로 전달하기 위해 사용하는 변수를 의미한다고 한다.

 

다음 예시를 보면 이해가 잘 될 것이다.

 

예시

1. 파라미터 함수를 정의한다.

function addNum(x, y, z) {
    return x + y + z;
}
 // x, y, z라는 3개의 매개변수를 가지는 함수 addNum()을 정의한다.(파라미터 함수)

2. 인수를 넣어본다.

addNum(1, 2, 3); // 인수로 1, 2, 3을 전달하여 함수를 호출함. -> 6

addNum(1, 2);    // 인수로 1, 2을 전달하여 함수를 호출함. -> NaN

addNum(1);       // 인수로 1을 전달하여 함수를 호출함. -> NaN

addNum();        // 인수로 아무것도 전달하지 않고 함수를 호출함. -> NaN

그렇다... 매개변수를 3개 정의했으면 3개를 다 넣어야 실행이 된다.

3개 이하로 넣으면 계산할 수 없다는 의미인 NaN을 반환한다.

 

3개 이하라 NaN이 반환되는 것을 막으려면 다음과 같은 것을 사용하면 된다.

3. 예외 처리

function addNum(x, y, z) {
    if(x === undefined) // 함수 호출시 x에 해당하는 인수가 전달되지 않은 경우
        x = 0;          // 변수 x의 값을 undefined에서 0으로 변경함.

    if(y === undefined) // 함수 호출시 y에 해당하는 인수가 전달되지 않은 경우
        y = 0;          // 변수 y의 값을 undefined에서 0으로 변경함.

    if(z === undefined) // 함수 호출시 z에 해당하는 인수가 전달되지 않은 경우
        z = 0;          // 변수 z의 값을 undefined에서 0으로 변경함.

    return x + y + z;
}

즉, 값이 없다면 0이라고 생각하자!라고 설정해주는 것이다.