자리둥절
10
2022-01-09 00:17:04 작성 2022-01-09 00:23:02 수정됨
1
151

자바스크립트 arguments 질문 드립니다 (document.write 결과값에 대한 의문)


코드 원본 

function sum() {
        var i,
          _sum = 0;
        for (i = 0; i < arguments.length; i++) {
          document.write(i + " : " + arguments[i] + "<br />");
          _sum += arguments[i];
        }
        return _sum;
      }
      document.write("result : " + sum(1, 2, 3, 4));


결과 값

0 : 1
1 : 2
2 : 3
3 : 4
result : 10


궁금한 점

다른 것은 알겠는데..


_sum += arguments[i];

이것을 통해서  


document.write("result : " + sum(1, 2, 3, 4));

result의 결과 값이 왜 10이 나오는 지 이해가안가네용..  (어떤식으로 위 복합대입연산자가 계산지 되는지 모르겠네요..)



0
  • 답변 1

  • fx
    1k
    2022-01-09 00:47:12 작성 2022-01-09 00:48:05 수정됨

    함수 내의 arguments 는 전달된 인자들의 배열과 유사한 객체로 지정됩니다.

    sum 함수를 호출할 때 1, 2, 3, 4 를 인자로 전달 하였으므로,

    sum 함수 내부에서 arguments 는 [1, 2, 3, 4] 와 유사한 객체이고,

    sum 함수는 원소를 순회하면서 출력하고 합계를 반환하는 로직이 있기 때문입니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.