let numbers = [10,11,12];
console.log(typeof numbers[Symbol.iterator]);
let numbers = [10,11,12];
console.log(typeof numbers[Symbol.iterator]);
function
let numbers = [10,11,12];
let it = numbers[Symbol.iterator]();
console.log(it.next());
let numbers = [10,11,12];
let it = numbers[Symbol.iterator]();
console.log(it.next());
{value: 10, done: false}
let numbers = [10,11,12];
let it = numbers[Symbol.iterator]();
console.log(it.next());
console.log(it.next());
console.log(it.next());
let numbers = [10,11,12];
let it = numbers[Symbol.iterator]();
console.log(it.next());
console.log(it.next());
console.log(it.next());
{value: 10, done: false}, {value: 11, done: false}, {value: 12, done: false},
let numbers = [10,11,12];
let it = numbers[Symbol.iterator]();
it.next()
it.next()
it.next()
console.log(it.next());
let numbers = [10,11,12];
let it = numbers[Symbol.iterator]();
it.next()
it.next()
it.next()
console.log(it.next());
{value: undefined, done: true}
let numberCreator = {
[Symbol.iterator]() {
let nextN = 10;
return {
next() {
return {
value: nextN++,
done:false
};
}
}
}};
let it = numberCreator[Symbol.iterator]();
console.log(it.next().value);
console.log(it.next().value);
let numberCreator = {
[Symbol.iterator]() {
let nextN = 10;
return {
next() {
return {
value: nextN++,
done:false
};
}
}
}};
let it = numberCreator[Symbol.iterator]();
console.log(it.next().value);
console.log(it.next().value);
10
11
let numberCreator = {
[Symbol.iterator]() {
let nextN = 10;
return {
next() {
return {
value: nextN++,
done:false
};
}
}
}};
let it = numberCreator[Symbol.iterator]();
for (let v of numberCreator) {
if (v > 100) break;
console.log(v);
}
let numberCreator = {
[Symbol.iterator]() {
let nextN = 10;
return {
next() {
return {
value: nextN++,
done:false
};
}
}
}};
let it = numberCreator[Symbol.iterator]();
for (let v of numberCreator) {
if (v > 100) break;
console.log(v);
}
0
1
2
3
...
100
let numberCreator = {
[Symbol.iterator]() {
let nextN = 10;
return {
next() {
if (next > 100)
let value = nextN > 100?undefined:nextN++;
let done = !value;
return {
value,
done
};
}
}
}};
for (let v of numberCreator) {
console.log(v);
}
let numberCreator = {
[Symbol.iterator]() {
let nextN = 10;
return {
next() {
if (next > 100)
let value = nextN > 100?undefined:nextN++;
let done = !value;
return {
value,
done
};
}
}
}};
for (let v of numberCreator) {
console.log(v);
}
0
1
2
3
...
100
let numbers = [10,11,12];
function process(n1,n2,n3) {
console.log(n3);
}
process(...numbers);
let numbers = [10,11,12];
function process(n1,n2,n3) {
console.log(n3);
}
process(...numbers);
12
function *process() {
yield 10;
yield 11;
yield 12;
}
let it = process();
console.log(it.next());
function *process() {
yield 10;
yield 11;
yield 12;
}
let it = process();
console.log(it.next());
{value: 10, done: false}
function *process() {
yield 10;
yield 11;
yield 12;
}
let it = process();
it.next()
it.next()
it.next()
console.log(it.next());
function *process() {
yield 10;
yield 11;
yield 12;
}
let it = process();
it.next()
it.next()
it.next()
console.log(it.next());
{value: undefined, done: true}
function *process() {
let next = 10000;
while(true)
yield(next++);
}
let it = process();
it.next()
console.log(it.next().value);
function *process() {
let next = 10000;
while(true)
yield(next++);
}
let it = process();
it.next()
console.log(it.next().value);
10001
function *process() {
let next = 10000;
while(true)
yield(next++);
}
for (let n of process()) {
if (n > 10100) break;
console.log(n);
}
function *process() {
let next = 10000;
while(true)
yield(next++);
}
for (let n of process()) {
if (n > 10100) break;
console.log(n);
}
10001
10002
10003
...
10100
function *process() {
yield;
}
let it = process();
console.log(it.next());
function *process() {
yield;
}
let it = process();
console.log(it.next());
{value: undefined, done: false}
function *process() {
let result = yield;
console.log(`result is ${result}`);
}
let it = process();
it.next();
it.next(200);
function *process() {
let result = yield;
console.log(`result is ${result}`);
}
let it = process();
it.next();
it.next(200);
result is 200
function *process() {
let result = yield;
console.log(`result is ${result}`);
}
let it = process();
it.next();
console.log(it.next(200));
function *process() {
let result = yield;
console.log(`result is ${result}`);
}
let it = process();
it.next();
console.log(it.next(200));
result is 200
{value: undefined, done: true}
function *process() {
let newArray = [yield,yield,yield];
console.log(newArray[2])
}
let it = process();
it.next();
it.next(8);
it.next(16);
it.next(24);
function *process() {
let newArray = [yield,yield,yield];
console.log(newArray[2])
}
let it = process();
it.next();
it.next(8);
it.next(16);
it.next(24);
24
{value: undefined, done: true}
function *process() {
let val = 2 * (yield 20);
console.log(val);
}
let it = process();
it.next();
it.next(1);
function *process() {
let val = 2 * (yield 20);
console.log(val);
}
let it = process();
it.next();
it.next(1);
2, {value: undefined, done: true}
function *process() {
yield 100;
yield [10,20,30]
}
let it = process();
console.log(it.next().value);
console.log(it.next().value);
console.log(it.next().value);
console.log(it.next().value);
function *process() {
yield 100;
yield [10,20,30]
}
let it = process();
console.log(it.next().value);
console.log(it.next().value);
console.log(it.next().value);
console.log(it.next().value);
100
[10, 20, 30]
undefined
undefined
function *process() {
yield 100;
yield* [10,20,30]
}
let it = process();
console.log(it.next().value);
console.log(it.next().value);
console.log(it.next().value);
console.log(it.next().value);
function *process() {
yield 100;
yield* [10,20,30]
}
let it = process();
console.log(it.next().value);
console.log(it.next().value);
console.log(it.next().value);
console.log(it.next().value);
100
10
20
30
function *process() {
yield 100;
yield* [10,20,30]
}
let it = process();
console.log(it.next().value);
console.log(it.next().value);
console.log(it.next().value);
console.log(it.next().value);
100
10
20
30