2009-12-04 3 views
29

매개 변수를 제공하는 Javascript 함수를 호출 할 때 매개 변수를 제공하지 않으면 어떻게됩니까?매개 변수를 제공하는 Javascript 함수를 호출 할 때 매개 변수를 제공하지 않으면 어떻게됩니까?

+1

글쎄, 매개 변수를 제공하지 않고 매개 변수를 제공하는 Javascript 함수를 호출했을 때 어떻게 되었을까요? 기도하십시오. –

+2

그럼에도 오류는 없었습니다. 왜 내가 궁금해 하던지 .. – Krummelz

+0

아마도 코드가 NPE에 충돌하거나 NPE가 발생하지 않을 때까지 실행되거나 NPE가 즉시 발생했을 때 코드 부분이 실행되었을 것입니다. 이 시나리오 중 하나를 관찰하는 것은 자바 스크립트가 인수를 처리하는 방법에 대한 엄격한 이해를 얻는 것과는 매우 다르다. (js의 다른 많은 측면과 마찬가지로 매우 분명하지는 않지만 매우 유용하다.) –

답변

27

미정의로 설정하십시오. 당신은 예외를 얻지 못합니다. 특정 상황에서 함수를보다 다양하게 만드는 편리한 방법이 될 수 있습니다. Undefined는 값을 false로 평가하므로 값이 전달되었는지 여부를 확인할 수 있습니다.

+0

함수가 5 개의 매개 변수를 사용할 수 있지만 두 개만 제공하면 어떻게됩니까? 같은 것? – Krummelz

+0

첫 번째 두 개가 허용되고 다음 세 개가 undefined –

+5

으로 설정되고 함수가 허용하는 것보다 * 더 많은 * 매개 변수를 제공 할 수 있습니다. 당신은'arguments' 컬렉션에 의해 모든 매개 변수에 접근 할 수 있습니다. 'function test (param1) {alert (param1); if (arguments.length == 2) alert (arguments [1]); } 테스트(); 시험 (1); 테스트 (1,2); –

-7

매개 변수 중 하나를 사용하려고하면 예외가 발생합니다.

12

자바 스크립트는 누락 된 매개 변수를 undefined으로 설정합니다.

function fn(a) { 
    console.log(a); 
} 

fn(1); // outputs 1 on the console 
fn(); // outputs undefined on the console 

이 매개 변수는 여러 매개 변수에 사용할 수 있습니다.

function example(a,b,c) { 
    console.log(a); 
    console.log(b); 
    console.log(c); 
} 

example(1,2,3); //outputs 1 then 2 then 3 to the console 
example(1,2); //outputs 1 then 2 then undefined to the console 
example(1); //outputs 1 then undefined then undefined to the console 
example(); //outputs undefined then undefined then undefined to the console 

또한 arguments 배열은 함수 정의에 필요한 것보다 더 많은 것을 제공 할 경우에도 제공되는 모든 인수를 포함 않습니다.

6

매개 변수를 사용하여 서명에 매개 변수를 포함하지 않는 함수를 호출 할 수 있다는 점에서 모든 사용자 응답에 반대입니다.

그러면 arguments 글로벌을 사용하여 액세스 할 수 있습니다. 이것은 당신이 그것의 세부 사항을 얻을 수있는 배열입니다.

상기 주석 이외에

function calcAverage() 
{ 
    var sum = 0 
    for(var i=0; i<arguments.length; i++) 
     sum = sum + arguments[i] 
    var average = sum/arguments.length 
    return average 
} 
document.write("Average = " + calcAverage(400, 600, 83)) 
3

인수 어레이는 제로 길이를 갖는다. 함수 시그니처에 명명 된 매개 변수가 아닌 검사 할 수 있습니다.

관련 문제