객체 지향 JavaScript — 오류 및 반복 가능

https://www.amazon.com/John-Au-Yeung/e/B08FT5NT62에서 Amazon에서 내 책을 확인하십시오.

지금 http://jauyeung.net/subscribe/에서 내 이메일 목록을 구독하십시오.

JavaScript는 부분적으로 객체 지향 언어입니다.

JavaScript를 배우려면 JavaScript의 객체 지향 부분을 배워야 합니다.

이 기사에서는 error 객체와 iterables를 살펴보겠습니다.

오류 개체



JavaScript는 오류가 발생하면 객체를 throw합니다Error.

여기에는 다양한 생성자가 포함됩니다.

여기에는 EvalError , RangeError , ReferenceError , SyntaxError , TypeErrorURIError 가 포함됩니다.

이러한 모든 생성자는 Error  에서 상속합니다.
try 블록 내에 오류를 발생시킬 수 있는 코드를 넣을 수 있습니다.

그리고 catch 블록에서 오류를 잡을 수 있습니다.

예를 들어 다음과 같이 작성할 수 있습니다.

try {
  foo();
} catch (e) {
  //...
}

foo에서 오류가 발생하면 catch 블록이 오류를 포착합니다.
e 오류 개체가 발생했습니다.
e.name로 이름을, e.message로 메시지를 얻을 수 있습니다.

오류 발생 여부에 관계없이 코드를 실행하기 위해 finally 절을 추가할 수 있습니다.

예를 들어 다음과 같이 작성할 수 있습니다.

try {
  foo();
} catch (e) {
  //...
} finally {
  console.log('finally');
}


ES6 반복자와 생성기



Iterator와 Generator는 ES6의 새로운 구조입니다.

이를 통해 다양한 유형의 반복 가능한 객체를 만들고 사용할 수 있습니다.

For… 루프의



for…of 루프를 사용하면 모든 종류의 반복 가능한 객체를 반복할 수 있습니다.

예를 들어 다음과 같이 작성하여 배열을 순환할 수 있습니다.

const iter = [1, 2];
for (const i of iter) {
  console.log(i);
}


그런 다음 우리는 다음을 얻습니다.

1
2


루프 변수const를 다른 것에 재할당할 수 없도록 루프 제목에 i를 사용했습니다.

문자열과 같은 다른 반복 가능한 객체에 대해서도 동일한 작업을 수행할 수 있습니다.

for (const i of 'foo') {
  console.log(i);
}


그런 다음 개별 문자를 i 의 값으로 얻습니다.

for…of 루프는 반복에 사용됩니다.

반복자와 반복자



반복자는 컬렉션의 다음 항목을 가져오기 위해 next를 노출하는 개체입니다.

제너레이터 함수로 반복자를 만들 수 있습니다.

예를 들어 다음과 같이 작성할 수 있습니다.

function* genFunc() {
  yield 1;
  yield 2;
  yield 3;
}

yieldnext를 호출하여 반복자에서 반환하려는 다음 항목을 반환합니다.
next 를 호출하면 생성기 함수가 일시 중지됩니다.

다음과 같이 작성하여 사용할 수 있습니다.

const gen = genFunc();
console.log(gen.next());
console.log(gen.next());
console.log(gen.next());
console.log(gen.next());


그런 다음 우리는 다음을 얻습니다.

{value: 1, done: false}
{value: 2, done: false}
{value: 3, done: false}
{value: undefined, done: true}


next 호출에서 생성된 각 항목을 얻습니다.
value는 산출된 값을 가지며 done는 생성기가 값 생성을 완료했는지 여부를 알려줍니다.

iterable은 반복 동작을 정의하는 객체입니다.

반복을 위해 for…of 루프와 함께 사용할 수 있습니다.

내장 iterable에는 배열과 문자열이 포함됩니다.

모든 반복 가능한 개체에는 @@itrerator가 키로 포함된 속성이 있는 Symbol.iterator 메서드가 있습니다.
next 메서드로 반복자를 반환해야 합니다.

따라서 가장 간단한 방법은 생성기를 사용하여 next를 호출하고 값을 반환할 수 있도록 하는 것입니다.

다음과 같이 작성하여 iterable을 만들 수 있습니다.

const obj = {
  *[Symbol.iterator]() {
    yield 1;
    yield 2;
    yield 3;
  }
}


그런 다음 다음과 같이 for…of 루프를 사용할 수 있습니다.

for (const i of obj) {
  console.log(i);
}


그런 다음 우리는 다음을 얻습니다.

1
2
3


기록.

결론



배열 및 문자열과 같은 ES6 반복 가능한 객체는 반복자를 사용하여 해당 값을 반환합니다.

for…of 루프를 통해 반복할 수도 있습니다.

오류 개체는 모든 코드에서 throw될 수 있으며 try-catch-finally로 잡을 수 있습니다.

좋은 웹페이지 즐겨찾기