1- # 반복자와 생성자 (Iterators and Generators )
1+ # 이터러블 (Iterables )
22
3- ## 반복 가능 (Iterables)
4-
5- [ ` Symbol.iterator ` ] ( https://www.typescriptlang.org/docs/handbook/symbols.html#symboliterator ) 프로퍼티에 대한 구현이 있는 객체는 반복 가능한 것으로 간주합니다.
6- ` Array ` , ` Map ` , ` Set ` , ` String ` , ` Int32Array ` , ` Uint32Array ` 등과 같은 일부 내장된 타입에는 이미 ` Symbol.iterator ` 프로퍼티가 구현되어 있습니다.
3+ 객체가 [ ` Symbol.iterator ` ] ( https://www.typescriptlang.org/docs/handbook/symbols.html#symboliterator ) 프로퍼티에 대한 구현을 가지고 있다면 이터러블로 간주합니다.
4+ ` Array ` , ` Map ` , ` Set ` , ` String ` , ` Int32Array ` , ` Uint32Array ` 등과 같은 일부 내장 타입에는 이미 ` Symbol.iterator ` 프로퍼티가 구현되어 있습니다.
75객체의 ` Symbol.iterator ` 함수는 반복할 값 목록을 반환합니다.
86
9- ## ` for..of ` 문 ( ` for..of ` statements)
7+ ## ` for..of ` 문
108
11- ` for..of ` 는 반복 가능한 객체를 반복하여 객체의 ` Symbol.iterator ` 프로퍼티를 호출합니다 .
9+ ` for..of ` 는 객체의 ` Symbol.iterator ` 프로퍼티를 호출하여, 이터러블 객체를 반복합니다 .
1210다음은 배열의 간단한 ` for..of ` 루프입니다:
1311
1412``` ts
1513let someArray = [1 , " string" , false ];
1614
17- for (let entry of someArray ){
15+ for (let entry of someArray )
1816 console .log (entry ); // 1, "string", false
1917}
2018```
2119
22- ### ` for..of ` vs. ` for..in ` 문 ( ` for..of ` vs. ` for..in ` statements)
20+ ### ` for..of ` vs. ` for..in ` 문
2321
24- ` for..of ` 및 ` for..in ` 문 모두 목록을 반복합니다.
25- 반복되는 값은 다르지만 ` for..in ` 은 반복되는 객체의 키 목록을 반환하고 ` for..of ` 는 반복되는 객체의 숫자 프로퍼티 목록을 반환합니다.
22+ ` for..of ` 및 ` for..in ` 문 모두 목록을 반복합니다; 반복되는 값은 다르지만, ` for..in ` 은 반복되는 객체의 * 키* 목록을 반환하고, 반면에 ` for..of ` 는 반복되는 객체의 숫자 프로퍼티 * 값* 목록을 반환합니다.
2623
2724다음은 이러한 차이점을 보여주는 예입니다.
2825
@@ -38,10 +35,8 @@ for (let i of list){
3835}
3936```
4037
41- 또 다른 차이점은 ` for..in ` 은 모든 객체에서 작동한다는 것입니다.
42- 이 객체의 프로퍼티를 검사하는 방법으로 사용됩니다.
43- 반면에 ` for..of ` 는 반복 가능한 객체의 값에 주로 관심이 있습니다.
44- ` Map ` 및 ` Set ` 과 같은 내장된 객체는 저장된 값에 접근할 수 있는 ` Symbol.iterator ` 프로퍼티를 구현합니다.
38+ 또 다른 차이점은 ` for..in ` 은 모든 객체에서 작동한다는 것입니다; 객체의 프로퍼티를 검사하는 방법으로 사용됩니다.
39+ 반면에 ` for..of ` 는 이터러블 객체의 값에 주로 관심이 있습니다. ` Map ` 및 ` Set ` 과 같은 내장 객체는 저장된 값에 접근할 수 있는 ` Symbol.iterator ` 프로퍼티를 구현합니다.
4540
4641``` ts
4742let pets = new Set ([" Cat" , " Dog" , " Hamster" ]);
@@ -60,10 +55,10 @@ for (let pet of pets){
6055
6156#### ES5 및 ES3 타게팅 (Targeting ES5 and ES3)
6257
63- ES5 또는 ES3 호환 엔진을 대상으로하는 경우, 반복자는 배열 유형의 값에만 허용됩니다 .
64- 이러한 배열이 아닌 값이 ` Symbol.iterator ` 속성을 구현하더라도 비 배열 값에서 ` for..of ` 루프를 사용하면 오류가 발생합니다.
58+ ES5 또는 ES3- 호환 엔진을 대상으로 하는 경우, 반복자는 ` Array ` 유형의 값만 허용합니다 .
59+ 이런 배열이 아닌 값이 ` Symbol.iterator ` 프로퍼티를 구현하더라도 배열이 아닌 값에서 ` for..of ` 루프를 사용하면 오류가 발생합니다.
6560
66- 컴파일러는 ` for..of ` 루프에 대한 간단한 ` for ` 루프를 생성합니다. 예를 들면 다음과 같습니다.
61+ 컴파일러는 ` for..of ` 루프에 대한 간단한 ` for ` 루프를 생성합니다, 예를 들면:
6762
6863``` ts
6964let numbers = [1 , 2 , 3 ];
@@ -72,7 +67,7 @@ for (let num of numbers){
7267}
7368```
7469
75- 는 다음과 같이 생성할 것입니다 :
70+ 는 다음과 같이 생성합니다 :
7671
7772``` ts
7873var numbers = [1 , 2 , 3 ];
@@ -82,6 +77,6 @@ for (var _i = 0; _i < numbers.length; _i++){
8277}
8378```
8479
85- #### ESMAScript 2015 및 상위 버전 타케팅 (Targeting ECMAScript 2015 and higher)
80+ #### ECMAScript 2015 및 상위 버전 타케팅 (Targeting ECMAScript 2015 and higher)
8681
87- ECMAScipt 2015-호환 엔진을 타케팅하는 경우, 컴파일러는 엔진의 내장 반복자를 구현하는 ` for..of ` 루프를 생성합니다.
82+ ECMAScipt 2015-호환 엔진을 타케팅하는 경우, 컴파일러는 엔진의 내장 반복자 구현을 대상으로 하는 ` for..of ` 루프를 생성합니다.
0 commit comments