728x90
반응형
SMALL
1. 제네레이터(Generator)
function* 제네레이터명(){
yield 값;
}
- 실행을 멈췄다가 나중에 다시 접근할 수 있는 특이한 형태의 함수
- 나중에 다시 접근하기 위해 context(변수)를 저장된 상태로 남겨둠
- 이터레이터(iterator)를 생성하는 함수, 이터레이터는 반복 가능한(iterable) 객체를 만드는데 사용
- 제네레이터 함수는 function* 키워드로 정의하며, yield 키워드를 사용하여 값을 반환
이터레이터란? ⬇️⬇️⬇️
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>제네레이터</title>
</head>
<body>
<h2>제네레이터</h2>
<script>
function* multipleGenerator(){
try{
for(let i=0; i<10; i++){
console.log(i)
yield i **2; // 첫가격
}
}catch(error){
console.log(error)
}
}
const multiple = multipleGenerator()
let next = multiple.next()
console.log(next.value, next.done) // 0 false(끝나지않음)
next = multiple.next()
console.log(next.value, next.done)
next = multiple.next()
console.log(next.value, next.done)
next = multiple.next()
console.log(next.value, next.done)
next = multiple.next()
console.log(next.value, next.done)
next = multiple.next()
console.log(next.value, next.done)
</script>
</body>
</html>
📍 next() : 제네레이터(generator) 객체의 상태를 관리하며, 호출될 때마다 yield 키워드로 구분된 다음 값을 반환
next() 메서드가 반환하는 값은 value와 done 두 개의 프로퍼티를 가지는 객체
value 프로퍼티는 yield 키워드 다음에 오는 값이며, done 프로퍼티는 이터레이터가 끝났는지 여부를 나타냄
MDN: generator
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Generator
728x90
반응형
LIST
'Web > JavaScript' 카테고리의 다른 글
[JavaScript] 세트(Set) - add(), has(), delete(), clear() (0) | 2023.04.20 |
---|---|
[JavaScript] Spread 연산자( ... ) (0) | 2023.04.20 |
[JavaScript] 이터레이터(Iterator) & 이터러블(Iterable) (0) | 2023.04.19 |
[JavaScript] 이벤트 전파(Event Propagation) - 방식, 전파 막는 방법 (0) | 2023.04.19 |
[JavaScript] 이벤트(Event) - 이벤트 타입(Event Type), 이벤트 타겟(Event Target), 이벤트 리스너(Event Listener), 이벤트 객체(Event Object) (0) | 2023.04.19 |