JavaScript 함수 파라미터

JavaScript 함수매개변수 값에 대한 어떠한 검사도하지 않습니다.

함수 매개변수

이 튜토리얼에서 더 이전에, 함수가 가질 수 있는 것을 배웠습니다:매개변수

functionName(parameter1, parameter2, parameter3) {
    를 실행합니다
}

함수 매개변수함수 정의에서 나열된

함수 매개변수은 함수에 전달되거나 함수가 수신하는 실제

매개변수 규칙

함수 정의는 매개변수에 대한 데이터 타입을 규정하지 않습니다.

JavaScript 함수는 전달된 매개변수에 대한 타입 검사를 실시하지 않습니다.

JavaScript 함수는 전달된 매개변수 수를 확인하지 않습니다.

매개변수 기본

매개변수 호출 시매개변수를 생략했습니다(추정된 수보다 적은 경우),빠진 값은 다음과 같이 설정됩니다:undefined

때로는 이해할 수 있지만, 때로는 매개변수에 기본 값을 지정하는 것이 더 좋습니다:

예제

function myFunction(x, y) {
    if (y === undefined) {
          y = 0;
    } 
}

직접 시도해 보세요

함수 호출 시매개변수가 많습니다(초과된 경우), 다음을 사용할 수 있습니다 arguments 객체이 매개변수에 도달할 수 있습니다.

arguments 객체

JavaScript 함수는 arguments 객체라는 내장 객체를 가지고 있습니다.

arguments 객체는 함수 호출 시 사용된 매개변수 배열을 포함합니다.

이렇게 하면, 함수를 사용하여 (예를 들어) 숫자 목록에서 가장 높은 값을 간단하게 찾을 수 있습니다:

예제

x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
    var i;
    var max = -Infinity;
    for (i = 0; i < arguments.length; i++) {
        if (arguments[i] > max) {
            max = arguments[i];
        }
    }
    return max;
}

직접 시도해 보세요

또는 모든 입력 값을 합치기 위해 함수를 생성할 수 있습니다:

예제

x = sumAll(1, 123, 500, 115, 44, 88);
function sumAll() {
    var i, sum = 0;
    for (i = 0; i < arguments.length; i++) {
        sum += arguments[i];
    }
    return sum;
}

직접 시도해 보세요

매개변수는 값으로 전달됩니다

함수 호출 내의 매개변수(parameter)는 함수의 매개변수(argument)입니다.

JavaScript 매개변수는전달하면: 함수는 매개변수의 위치를 알지 못합니다.

함수가 매개변수의 값을 변경하면, 매개변수의 원래 값은 변경되지 않습니다.

변경은 함수 외에서 볼 수 없습니다.

객체는 참조를 통해 전달됩니다.

JavaScript에서, 객체 참조는 값입니다.

따라서, 객체의 행동은 그들이 전달된 것처럼 보입니다.참조전달하려면:

함수가 객체 속성을 변경하면, 원래 값도 변경됩니다.

객체 속성의 변경은 함수 외에서 볼 수 있습니다.