変数宣言の整理

1158 ワード

へんすう


var


スキャンする変数の宣言
  • エラーXエラーが発生しなければ、エラーを見つけるのは難しい.
  • 冗長O
  • ほとんど
  • を使わない

    let


    値を変換できるため例外
  • エラーO
  • 冗長X
  • const


    デフォルトでは、値が変わらない定数変数を使用します.
  • エラーO
  • 冗長X
  • const a; // 이렇게는 사용x
    const b = 10;
    b = 20; // 이렇게 사용x, 재할당 불가

    参照型データを定数変数に割り当てます.
    定数変数の内部のオブジェクトで、配列は定数ではありません.
    つまり、値は可変です.
    -> 어떻게 해야하는가?
    내부도 상수로 만들면 됨!
    Object.freeze() or Object.defineProperty()

    freeze


    1)オブジェクトobj自体をフリーズする.
    2)オブジェクトobj内をPropertyを巡回する.
    参照タイプの場合は、1回繰り返します->再帰=DeepFreezing

    ふくしゃ


    浅い放射


    ObjでのPropertiesのコピー(深さ1フェーズのみ)

    ふかほうしゃ


    Objのプロパティをコピーします(すべての深さについて)
    1)番組を複製する.
    2)Propertyに参照型がある場合は1)繰返し->再帰
    var B(복사받을 변수) = Object.assign({},A(복사할 변수)); # 얕은 복사
    
    		   B의 값을 바꾸면 A값의 프로퍼티들도 바뀜 # 깊은 복사
    
    B.b = Object.assign([],A.b);
    B.c = Object.assign({},A.c);
    찾아가며 다 바꿔줘야 값이 안바뀜
    深い複製こそ不変のオブジェクトです.