Javascript
[JavaScript] JavaScript / argument 객체

자바( Java )

1. 정적 형 지정 : Static typing

  • int 형식의 변수를 생성하면, 정수만 담을 수 있다.
  • member형식의 참조변수를 생성하면, member 객체만 담을 수 있다.

2. 강한 형 검사 : Strong type checking

  • type이 일치하지 않다면, 컴파일 오류를 발생!


자바 스크립트 ( JavaScript )

동적 형 지정 : Dynamic typing

  • 자바와 다르게 대입될 자료에 의해 변수의 자료형이 결정된다.


자료형

  • boolean : true 와 false
  • number : 정수와 실수를 모두 표현 (대표적인 상징 값)
  • NaN : 숫자가 아니다.
  • Number, MAX_VALUE : 양수 무한대
  • Number, MIN_VALUE : 음수 무한대
  • String : 문자열, ' ' or " " 로 표현
  • undefined : 정의되지 않은 값, 값을 할당하지 않은 변수의 값
  • null : 존재하지 않은 값
  • function : 함수, 객체를 생성할 수 있는 역할

null : 변수는 있으나, 해당 변수가 참조하는 객체가 없을 경우

undefined : 애초에 참조할 수 있는 변수가 없을 경우, 변수가 초기화되지 않는 경우



arguments 객체 

☆typeof arguments =>>object


자바 스크립트에서는 함수를 호출할 때 함수 형식에 맞춰 인자를 넘기지 않아도 에러가 발생하지 않는다.

  • 정의된 인자보다 적게 함수를 호출했을 경우, 넘겨주지 않은 인자에는 특별한 값 undefined가 할당됨
  • 반대로 정의된 인자보다 많게 함수를 호출했을 경우, 에러가 발생하지 않고 초과된 인수는 무시됨.

                 =>> 런타임 시 호출된 인자의 개수를 확인하고 이에 따라 동작을 다르게 해줄 수 있다.

                         이를 가능하게 하는게 바로 arguments 객체


함수를 호출할 때 인수들과 함께 암묵적으로 arguments 객체가 함수 내부로 전달됨.

arguments 객체는 함수를 호출할 때 넘긴 인자들이 배열 형태로 저장된 객체를 의미함.

실제 배열이 아닌 마치 배열 형태처럼 숫자로 인덱싱된 프로퍼티가 있는 객체 ==> 유사 배열 객체


  • length 프로퍼티 : 호출할 때 넘겨진 인자의 개수
  • callee 프로퍼티 : 현재 실행 중인 함수의 참조값


**배열과 유사하게 동작하지만, 배열은 아니므로 배열 메서드를 사용하면 에러가 발생


  1. 매개변수 개수가 정확하게 정해지지 않은 함수를 구현
  2. 전달된 인자의 개수에 따라 서로 다른 처리를 해줘야하는 함수를 구현


댓글 0