個人的なメモ
新しく始めるインターンの関係でAngularを勉強したときにぶつかったわからなかった単語の個人的なメモです。普段の開発はバックエンドがほとんどであるため、javascriptに関する用語が多めです。
イテレーター
イテレーターとジェネレーターは、コア言語の内部に反復処理が直接的に取り入れられており、for...of ループの動作を簡単にカスタマイズできる仕組みをもたらします。
イテレーター
next()メソッドを持つ。
value:反復シーケンスの次の値
done:シーケンスの最後の値が既に消費されている場合に true となります。
done と並んで value が存在する場合、それがイテレーターの戻り値となります。
例;
const arrIterator = [1, 2, 3].values();
for (const value of arrIterator) {
console.log(value);
}
// Logs: 1, 2, 3
イテレータはざっくりいうと、一連の複数のデータからなるもの。for-of文はイテレータの中身を1つずつ取り出して処理する文です
イテレータとiterable
for-ofで処理できるような配列や文字列(一連の複数のデータ)はイテレータではなく、厳密にはiterable
iterableとはイテレータにより順に取り出すことができるものらしい。たとえば配列でvalueメソッドを使うと対応するイテレータを取得できる。
そのイテレータにnext()メソッドを使うことでイテレータの要素を次々取得できる。これらの処理をfor-ofでは行っている。(iterableをイテレータに変換、値をnext()で取得)
var iterator = [1,2,3,4,5].values();
console.log(iterator.next());
// {value: 1,done: false}
console.log(iterator.next());
// {value: 2,done: false}
このように値があるうちはvalueにその値、doneにfalseが返され、next()を呼ぶたびに次の値を取得できます。
そして、最後の値の後、もう一度next()を呼ぶとvalueにundefined、doneにtrueが入ります。
Object.assign()
Object.assign() 静的メソッドは、すべての列挙可能な自身のプロパティの値を、 1 つ以上のコピー元オブジェクトからコピー先オブジェクトにコピーするために使用されます
const target = { a: 1, b: 2 };
const source = { b: 4, c: 5 };
const returnedTarget = Object.assign(target, source);
console.log(target);
// Expected output: Object { a: 1, b: 4, c: 5 }
コピー先オブジェクトのプロパティは、コピー元に同じキーのプロパティがあると上書きされます。より後のコピー元のプロパティが、より前のものを同様に上書きします。
zip
zip() オペレータは、複数の Observable を受け取って、それを組み合わせた Observable を返します。
const zip$ = zip(of(1, 2, 3), of(4, 5, 6));
zip$.subscribe(v => console.log(v));
// 出力結果:
// [1, 4]
// [2, 5]
// [3, 6]
Rxjs,Observer
Observerパターン を使った非同期処理・イベント処理のためのライブラリ群
以下のサイトが大変参考になった
https://zenn.dev/ttskch/articles/b9427be6dd188e
最後に
まだ学習を始めたばかりなので、随時追加予定