JSエキスパートになる//Day 07


🙌入る前に。


JS専門家のテーマの位置づけの目的は筆者が学んだことを復習し、その不足を補うことである.

1. Primitive & Reference

  • Boolean
  • Null
  • Undefined
  • Number
  • String
  • Symbol
    以上の値はいずれも元の資料型
  • である.
  • Array
  • Object
  • Function
    以上の値はいずれも参考資料型
  • である.

    1-1. 差異



    ソース:https://goodgid.github.io/JS-Data-Types/
    元の値はStackという名前の場所に値を割り当てます.
    参照値は、stackという名前の場所にアドレス値を割り当てます.
    (参照値の値はheapという名前の場所に格納されます.)
    例を挙げてみましょう
    let Primitive = 1;
    let Reference = [1, 2, 3];
    //
    let clonePri = Primitive;
    clonePri += 1;
    console.log(Primitive); // 1
    //
    let cloneRefer = Reference;
    cloneRefer.push(4);
    console.log(Reference); // [1, 2, 3, 4]
    元のデータ型はコピーできませんが、リファレンス型は値をコピーできません.
    (参照資料タイプは、変数に割り当てられたときに非値アドレス(コピーアドレス)を格納するため

    2. Scope



    内部Scopeから外部変数/関数にアクセス可能
    外部Scopeから内部変数/関数にアクセスできません

    2-1. Global Scope & Function Scope & Block Scope




    以上のように,Keywordの有効範囲と再割り当ての有無は別々である.

    2-2. Closure

    function outerFn(){
    	let outerVar = 'outer';
        	console.log(outerVar);
    	function innerFn(){
        		let innerVar = 'inner';
                	console.log(innerVar);
        	}
        return innerFn()
    }
    let globalVar = 'global';
    outerFn(); // outer \n inner
    Closure関数はinnerfn()です.
    コピー機能:領域変数、外部関数の変数、グローバル変数
    すべての可能な関数

    2-3. Currying



    Curring:n個の関数を作成し、各関数はn個のパラメータを受け入れ、1個の関数はn個のパラメータを受け入れない.

    2-4. Currying Example

    코드를 입력하세요
    20201215