계발하는 개발자

[JS] length 프로퍼티 | 함수객체.length vs arguments.length 본문

📌 Language/Javascript

[JS] length 프로퍼티 | 함수객체.length vs arguments.length

dev_genie 2023. 2. 8. 23:48

코드를 작성하다보면 매개변수나 배열의 길이값을 가져와야 하는 경우가 생깁니다.

오늘은 함수객체와 arguments의 length 프로퍼티를 중점적으로 정리해보겠습니다.

(이외 더 많은 프로퍼티들은 차차 다루도록 하겠읍니담..)

 

먼저 length 프로퍼티라고 해서 다 같은 공간에서 길이값을 가져오는 것이 아님을 알아야 합니다.

 

함수객체 .length 프로퍼티

  함수 객체의 length 프로퍼티는 함수를 정의할 때 선언한 매개변수의 개수를 가리킵니다.

// Case 1
function qu() {}
  console.log(qu.length); // 0

// Case 2
function ohr(i) {
  return i+i
}
  console.log(ohr.length); // 1
 
// Case 3
function milk(a,b) {
  return a*b;
}
  console.log(milk.length); // 2

위와 같이 출력됨을 확인할 수 있습니다.


arguments .length 프로퍼티

  사용자가 제공하는 배열 인자의 개수를 가리킵니다. 

arguments는 배열과 유사한 사용법을 가지고 있어서 함수객체의 인자가 몇 개인지를 알 수 있습니다.

function txt(){
    for(var i = 0; i < arguments.length; i++){
    console.log(i+':'+arguments[i]);
 }   
};
console.log('result:'+ txt(1,2,3,4));

위 예제에서 유추할 수 있는 arguments 유사배열 객체의 인자는 총 4개가 되겠네요(1,2,3,4 => 0~3까지 총 4개)

만약 txt함수의 인자가 1,2,3 이었다면 개수는 총 3이 될 것입니다.

 

여기서 유사 배열 객체란 length 프로퍼티를 가진 객체로서, for문 안을 순회할 수 있는 객체를 말합니다.

사용자가 전달한 인자의 수만큼 for문을 돌아라 라는 의미로 해석할 수 있습니다.

: (콜론)기호를 기준으로 우측에 있는 값이 arguments의 배열 인덱스번호[i] 1~4 입니다.

좌측에 있는 변수 i 값은 0부터 arguments 배열갯수 미만으로 돌아라 했으니까

0~3까지의 수가 들어간 것을 확인할 수 있습니다.

 

위 프로퍼티 요소들은 크게 어려움은 없어서 여기까지 정리하겠습니다 :)


*이해에 도움이 됐던 강의 & 자료 출처:

https://youtu.be/i2tPgVFLGcA - 생활코딩 / arguments란?

모던자바스크립트 Deep Dive - 이웅모 저

LIST
profile

dev_genie

@dev_genie

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!