5日目TIL


HTML / CSS


HTML:担当構造/意味
CSS:文書の表示方法
  • CSS 3:(セレクタ)どこで(プロパティ)どう(値)
  • Dom


    JSと共に現れる
    HTMLドキュメントを直接修正することもできます

    ノード

  • ドキュメントノード:最大
  • 要素ノード:表示フラグ
  • プロパティノード:サブノード
  • ではなくタグに近い
  • テキストノード
  • タグの検索:

  • getElementById:最初に見つかった要素
  • を返します.
  • getElementByClassName:一致するすべての要素
  • を返します.
  • getElementByTagName:一致するすべての要素
  • を返します.
  • querySelector:最初に見つかった要素
  • を返します.
  • querySelector All:一致するすべての要素
  • を返します.
  • idを持つ要素もwindowオブジェクトで見つけることができます.
  • タグに基づいて他のタグを検索

  • 親ノード:選択したターゲットの親ノード
  • firstElementNode:選択したターゲットの最初のサブノード
  • サブノード:選択したターゲットのすべてのサブノード
  • nextElementSibiling:選択したターゲットの次の兄弟要素ノード
  • previousElementSibiling:選択したターゲットの前の兄弟要素ノード
  • 属性の関連付け

  • クラスName:クラス属性値
  • クラスリスト:クラス関連リスト
  • hasAttribute:属性が存在する場合は属性値、またはNull値
  • を返します.
  • getAttribute:対応する属性に基づいて値を取得します.
  • 設定属性:設定属性と値
  • removeAttribute:属性を削除
  • 属性の例

    <h1 class='a'>abc</h1>
    <script>
        const h1 = document.querySelector('.a')
        console.log(h1.className)
        console.log(h1.classList)
        console.log(h1.getAttribute('class'))
        console.log(h1);
        setTimeout(()=>{
        h1.setAttribute('id','abc');
        h1.removeAttribute('class')
        console.log(h1);
        },1000)
    </script>
  • コンソール出力の場合、上h 1出力と下h 1出力はタグの属性設定よりも遅くなり、同じ結果が発生しないようにします.setTimeoutを使用して結果を確認した.
  • テキストノードに関連

  • textContent
  • innerHTML=>XSSリスク
  • 要素ノードの作成/追加/削除

  • createElement
  • appendChild
  • removeChild
  • Virtual Dom


    従来のDomの概念は,性能上の問題を解決するために生まれ,その都度大きく変化する.
    1)重複文によるDom更新
    2)繰り返し文で文字列を更新し、最後にDomを更新する
  • 2)は1)よりもLive Domに触れる時間が少ないため,かかる時間が少ない.
  • documentFragement


    メモリで操作した後、ダイナミックドメインツリーに追加
    ex)createDocumentFragmentメソッドの使用
    <ul id="ul">
    </ul>
    <script>
       var element  = document.getElementById('ul'); // ul이 존재한다고 가정
    var fragment = document.createDocumentFragment();
    var browsers = ['Firefox', 'Chrome', 'Opera',
        'Safari', 'Internet Explorer'];
    
    browsers.forEach(function(browser) {
        var li = document.createElement('li');
        li.textContent = browser;
        fragment.appendChild(li);
    });
    
    element.appendChild(fragment);
    </script>

    評価/一級/一級関数

  • 評価:コードを計算し、値
  • を生成します.
  • レベル:値として変数に含まれ、関数のパラメータと結果として
  • 一級関数:関数を値として使用できます.
    ex) const a = ()=>{}
  • 高次関数(関数をパラメータとして返す)

  • 関数をパラメータとして実行する関数
  • 関数を作成し、
  • を返します.

    1.

    const apply1 = f => f(1);
    console.log(apply1(a=>a-1));		//0
    
    const set = [1,2,3].map(x=>x*x)		//[1,4,9]
    mapもパラメータとして関数を受け入れるので高次関数です.

    2.

    const calculate = (a) => (b) => (c) =>(a+b+c)
    calculate(1)				//(b) => (c) =>(a+b+c)
    calculate(1)(2)				//(c) =>(a+b+c)
    calculate(1)(2)(3)			//6

    for of / for in


    繰り返し
  • for in:オブジェクトのすべてのリスト可能な属性に対して
  • 繰り返します.
  • for of繰返し:Symbol.iterator属性、集合
  • のみ

    よよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよよ

  • iterable:値[Symbol.iterator]()、イテレーションを返します
  • 反復器:値
  • 、オブジェクトのnext()を返します.
  • ITERABLEプロトコル:可愛いちゃんに関する約束
  • プログラマブルコンセプト
  • Array
  • new Set
  • new Map
  • githubフィードバック

  • ではなく==を使用します.
  • 空はBoolean、trueに配列されています.
  • forEach戻りがない場合地図戻りがある場合
  • を使用
  • for Each用法
  • [[10,900,80]].forEach(val=>{console.log(val[1],val[2])})
    900,80を出力するために、
    [[10,900,80]].forEach(([_,h,p])=>{console.log(h,p)})
    これはもっときれいです.

    に感銘を与える

  • Domの関連内容は以前やったことがあり、forとiteratorの関連に感銘を受けました.
    オブジェクトをforに巡回するたびにnot iterableエラーが発生し、arr[Symbol.iterator]();がこのように適用され、nextの方法で処理できないため、オブジェクトはforではないと感じます.