Skip to content

Commit

Permalink
Update 함수와 일급 객체.md
Browse files Browse the repository at this point in the history
  • Loading branch information
houony authored Jul 1, 2024
1 parent daffa51 commit 5a32e68
Showing 1 changed file with 16 additions and 1 deletion.
17 changes: 16 additions & 1 deletion 박성훈/week5/함수와 일급 객체.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,8 @@
> > for ... of 문
> >
> > for ( 변수 선언문 of 이터러블 ) { ... }
> >
> > ![image](https://github.com/houony/Javascript-Deep-Dive-Study/assets/99787274/5ebcc1ef-9210-4b29-8ba7-ca310faaf983)
>
>
> > for ... in 문의 형식과 유사하다. for ... in 문은 객체의 프로토타입 체인 상에 존재하는 모든 프로토타입 프로퍼티 중에서 프로퍼티 어트리뷰트 [[Enumerable]]의 값이 true인 프로퍼티를 순회하며 열거한다. 이때 프로퍼티 키가 심벌인 프로퍼티는 열거하지 않는다.
Expand All @@ -117,10 +119,23 @@
- 매개변수의 개수와 인수의 개수를 확인하지 않는 특성 때문에 함수가 호출되면 인수 개수를 확인하고 이에 따라 함수의 동작을 달리 정의할 필요가 있을 수 있다.
- arguments 객체는 매개변수 개수를 확정할 수 없는 가변 인자 함수를 구현할 때 유용하다.
![image](https://github.com/houony/Javascript-Deep-Dive-Study/assets/99787274/a6d00311-b7ef-4296-893b-c6fe5d75d8c2)
- arguments 객체는 배열 형태로 인자 정보를 담고 있지만 실제 배열이 아닌 유사 배열 객체다. ( 유사 배열 객체 : length 프로퍼티를 가진 객체로 for문으로 순회할 수 있는 객체 )
- arguments 객체는 배열 형태로 인자 정보를 담고 있지만 실제 배열이 아닌 유사 배열 객체다.
> +++
>
> 유사 배열 객체
>
> 유사 배열 객체는 배열처럼 인덱스로 프로퍼티 값에 접근할 수 있고 length 프로퍼티를 갖는 객체를 말한다.
>
> length 프로퍼티를 갖기 때문에 for 문으로 순회할 수 있고, 인덱스를 나타내는 순자 형식의 문자열을 프로퍼티 키로 가지므로 배열처럼 인덱스로 프로퍼티 값에 접근할 수 있다.
>
> ![image](https://github.com/houony/Javascript-Deep-Dive-Study/assets/99787274/54daaa3d-65f8-4615-9e11-0fa5a77cdb6d)
>
> 그러나 유사 배열 객체는 Symbol.iterator 메서드가 없기 때문에 for ... of 문으로 순회할 수 없으며 이터러블이 아닌 일반 객체다.
>
> 단, arguments, NodeList, HTMLCollection은 유사 배열 객체이면서 이터러블이다. ES6에서 이터러블이 도입되면서 Symbol.iterator 메서드를 구현하여 이터러블이 되었고 여전히 length 프로퍼티를 가지며 인덱스를 접근할 수 있으므로 유사 배열 객체이면서 이터러블인 것이다.
>
>
>
>
- 유사 배열 객체는 배열이 아니므로 배열 메서드를 사용하면 에러가 발생한다. 배열 메서드를 사용하기 위 간접 호출해야 하는 번거로움이 있다.
Expand Down

0 comments on commit 5a32e68

Please sign in to comment.