[TIL🔥]Day6(8/9)



Introduction


先週の木曜日から週末の課題をやって、やっと初めてCode Reviewを受けました.
私の実力はまだ足りないし、修正すべき点もたくさんありますが、指導者やチームメートの評価を得てくれて感謝しています.
しかも今日は週末の授業のおかげで、今日の授業は粘り強く・・・
粘り強さだけでこんなに嬉しくて・・・😆
課題も早めに公開して今日からゆっくり考えます!

今日新しく学んだもの


今週は関数式のプログラミングを勉強します.
講師が変わって、今週もうまく説明してくれたので分かりやすいです.
1. DOM
2.評価と一級
3.イテレーション/イテレーションプロトコル
4.発電機
今日は、プログラミング/ウィジェットプロトコルを可能にする重要な概念について議論します.

🔎 アプレット/アプレットプロトコル


かわいいとは?

  • 値は[Symbol.iterator]()で、イテレーション
  • を返します.

    イテレーションとは?

  • {value, done} 객체를 리턴next()の値
  • アプレット/アプレットプロトコル

  • 使小可爱for...of, 전개 연산자 등과 함께 동작的约定
  • コードによる理解

    // 사용자 정의 이터러블을 통해 알아보기
    const iterable = {
    	 // Symbol.iterator를 가지기 때문에, for...of 동작 가능
       [Symbol.iterator](){
    			let i = 3;
          // iterator 객체를 리턴
          return {
                // iterator는 {value, done}을 리턴
                next(){
                    return i === 0 ? { done: true } : { value: i--, done: false };
                },
                // wellformed 이터레이터를 만들기 위해 추가
                [Symbol.iterator]() {return this}
            }
        }
    };
    
    let iterator = iterable[Symbol.iterator]();
    for (const a of iterable) log(a); // 3 2 1
    // wellformed 이터레이터로 변경 후 아래 코드도 동작
    iterator.next();
    for (const a of iterator) log(a); // 2 1
    
    // wellformed 이터레이터라면, 이터레이터 역시 이터러블 해야함
    const arr2 = [1, 2, 3];
    let iter = arr2[Symbol.iterator]();
    iter.next();
    // 자기 자신을 반환
    log(iter[Symbol.iterator]() === iter) // true
    for (const a of iter) log(a); // 2 3

    Comment


    レッスンも多く、課題も多いですが、日々の知識の積み重ねがとても良く、充実した1日を過ごすことができてとても楽しかったです.
    Defcosに合格できなかったら、一人で勉強しても何の見当もつかず、改めてLiaマネージャーに感謝~~💛
    5ヶ月以内に全力投球を決意!