자바스크립트 함수 매개변수 (Parameters)

자바스크립트 함수는 매개변수 값 (인수)(parameter values (arguments))을 검사하지 않습니다.


함수 매개 변수 및 인수 (Parameters and Arguments)

이 튜토리얼 앞 부분에서, 함수는 매개변수(parameters)를 가질 수 있다고 배웠습니다:

함수 매개변수(parameters)는 함수 정의(function definition)에 나열한 names입니다.

함수 인수(arguments)는 함수에 전달된 실제 값(values)입니다.


매개변수 규칙 (Parameter Rules)

자바스크립트 함수 정의는 매개 변수에 대한 데이터 유형(types)을 지정하지 않습니다.

자바스크립트 함수는 전달된 인수(arguments)에 대해 유형(type) 검사를 수행하지 않습니다.

자바스크립트 함수는 받은 인수(arguments)의 갯수를 체크하지 않습니다.


매개 변수 기본값 (Parameter Defaults)

함수가 인수 없이(missing arguments) (선언된 것보다 적게) 호출되면, 누락된 값은 undefined로 설정됩니다.:

다음 코드는 가능하지만, 매개 변수(parameter)에 기본값(default value)을 할당하는 것이 좋습니다:

Example

함수 매개변수(parameter)에 기본값 설정(default value).

0

함수가 너무 많은 인수(arguments)(선언된 것보다 많이)로 호출되면, 이 인수(arguments)는 인수 객체(arguments object)를 사용하여 연결됩니다(reached).


인수 객체 (Arguments Object)

자바스크립트 함수에는 arguments object라는 내장 객체(built-in object)가 있습니다.

인수 객체(argument object)는, 함수가 호출될 때 사용된, 인수 배열(array of the arguments)을 포함합니다.

이 방법으로 함수를 사용하여, 숫자 목록에서 최대값을 찾을 수 있습니다:

Example

최대값 찾기.

6

또는 입력 값을 모두 더하는 함수를 만듭니다:

Example

모든 인수(arguments)의 합계:

871


인수(Arguments)는 값(Value)으로 전달됩니다.

함수 호출에서, 매개 변수(parameters)는 함수의 인수(function’s arguments)입니다.

자바스크립트 인수(arguments)는 값(value)으로 전달됩니다: 함수는 값(value)만 압니다. 인수(arguments)의 위치는 모릅니다.

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

인수 변경(Changes to arguments)은 그 함수 외부에서는 볼 수 없습니다(반영되지 않습니다).


객체(Objects)는 참조(Reference)로 전달됩니다.

자바 스크립트에서, 객체 참조(object references)는 값(values)입니다.

이 때문에, 객체는 참조(reference)로 전달되는 것처럼 동작합니다.

함수가 객체 속성(an object property)을 변경하면, 원래 값이 변경됩니다.

객체 속성 변경(Changes to object properties)은 그 함수 외부에서 볼 수 있습니다(반영됩니다).

출처: JavaScript Function Parameters

답글 남기기