From 5a32e688aef004537e2a57199d326c5befbe0dc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=84=B1=ED=9B=88?= <99787274+houony@users.noreply.github.com> Date: Tue, 2 Jul 2024 01:12:43 +0900 Subject: [PATCH] =?UTF-8?q?Update=20=ED=95=A8=EC=88=98=EC=99=80=20?= =?UTF-8?q?=EC=9D=BC=EA=B8=89=20=EA=B0=9D=EC=B2=B4.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...274\352\270\211 \352\260\235\354\262\264.md" | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git "a/\353\260\225\354\204\261\355\233\210/week5/\355\225\250\354\210\230\354\231\200 \354\235\274\352\270\211 \352\260\235\354\262\264.md" "b/\353\260\225\354\204\261\355\233\210/week5/\355\225\250\354\210\230\354\231\200 \354\235\274\352\270\211 \352\260\235\354\262\264.md" index 2e20c60..e0a3efc 100644 --- "a/\353\260\225\354\204\261\355\233\210/week5/\355\225\250\354\210\230\354\231\200 \354\235\274\352\270\211 \352\260\235\354\262\264.md" +++ "b/\353\260\225\354\204\261\355\233\210/week5/\355\225\250\354\210\230\354\231\200 \354\235\274\352\270\211 \352\260\235\354\262\264.md" @@ -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인 프로퍼티를 순회하며 열거한다. 이때 프로퍼티 키가 심벌인 프로퍼티는 열거하지 않는다. @@ -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 프로퍼티를 가지며 인덱스를 접근할 수 있으므로 유사 배열 객체이면서 이터러블인 것이다. + > + > + > > - 유사 배열 객체는 배열이 아니므로 배열 메서드를 사용하면 에러가 발생한다. 배열 메서드를 사용하기 위 간접 호출해야 하는 번거로움이 있다.