JavaScriptベース2


Data, Types, let vs var, hoisting


Variable


変数がボックスに等しい
物を預けるのに使う.
ボックスと変数の違いは、ボックスが物を保存し、変数がデータを保存することです.
まず、変数letとvarを比較する前に、Holistについて説明します.

ホストとは?


変数の宣言を有効範囲の最上位に上げる行為=>宣言と分配を分けるとさらに良い.
  • 関数に存在する変数/関数宣言に関する情報を記憶し、実行します.
  • 関数ブロック{}内で有効です.
  • は、リフティング関数に存在するコンテンツに必要な値である.
  • は,実際にはコードが昇格されるのではなく,JavaScript解析器内部で昇格させることによって処理される.
  • の実際のメモリでは変化しません.
  • 変換は、
  • var変数宣言および関数宣言にのみ表示されます.
  • var変数/関数の宣言のみをアップグレードし、割り当てはアップグレードしません.
  • if(ture){
     var name = 'youddomack';
     }
     console.log(name);
    上のコードは次のコードに変換されます.
    var name;
    if(ture){
    name = 'youddomack';
    }
    console.log(name);

    Let

    let name = "ellie";
    name = "doyeon";
    letを使用して変数の値を格納し、後で変数の値を変更できます.

    Const


    constはletとは異なり,いったん値を付与すると値は絶対に変わらない.値を変更し続けることができるのは可変データ型、letは可変データ型、constは可変データ型です.

    Block scope { }


    {}で生成された変数は{}以外では使用できません.
    {}で定義されていません.外部で宣言された変数はglobal scopeと呼ばれ、どこでも使用できます.
    global scopeは常にメモリに存在し、アプリケーションの開始から終了まで使用するため、class、関数、if、for文で使用するのが望ましい.

    Variable types


    Primitive single item
    number, string, boolean, null, undifined
    Object
    function, frist-class function
    objectでは、単一のプロジェクトを複数の箱に組み合わせて管理できます.
    first class function
    JavaScriptでは、関数をオブジェクトとして扱い、他の変数、オブジェクト、配列に格納したり、インポート、戻し、または同時に実行したりすることができます.
    Number
    JavaScriptではnumberを単独で宣言する必要はありません.
    JavaScriptではタイプが多様なので、
    let a = 1;
    let b = 2;
    これで設定できます
    後でJavaScriptを学び、typeをもっと詳しく使いたいならtypeScriptを学ぶことができます.
    Typeスクリプトには、次のものがあります.
    let a: number = 12;
    let b: number = 20;
    こうなります.
    String
    フィードバック付きString出力(最近はこの機能のみが使用されているようです)
    console.log(`value:${함수}`)
    Boolean
    false: 0,null, undefined, Nan
    true:その他の値
    変数consttest=falseとして;設定できます.
    const test = 3<1;
    このようにして値をfalseと推定することができます.
    nullとundefinedの違い
    nullが空っぽの値なら
    未定義とは、宣言されたが値が割り当てられていないことを意味します.
    NanはNot a numberが数字ではないことを示す

    Symbol


    地図または他の資料構造の一意の識別子を必要とするか、同時に多発するコードで優先順位を付けたい場合に使用します.
    const symbol1 = Symbol("id");
    const symbol2 = Symbol("id");
    Symbolは一意の識別子であり、内部Stringを同じにしてもfalse値が生成されます.
    同じ構成部品を選択する場合は
    const symbol2 = Symbol.for("id");
    Symbol.for()を使えばいいです.
    Symbol.for()は、呼び出しごとに新しい構成部品を作成するのではなく、まず、現在のレジストリに鍵を持つ構成部品が存在するかどうかを確認します.
    ある場合はそのエレメントを返し、鍵に対応するエレメントがない場合はSymbol.for()は、新しいグローバル構成部品を作成します.

    Dynamic typing


    (DREAMコードELLYのYouTubeで許可をもらいました!)
    JAvascriptはダイナミックタイプ言語で、タイプを指定しない場合、値のタイプが自動的に値のタイプを決定します.
    上の図に示すように、String値にnumberを加えるとnumber値がString値になり、2つのString値が1つに結合されます.
    また、2つのString値の間の値が数値である場合、2つの値の間の値が数値である場合、Stringではなく数値が格納されます.
    String + number =>String + String
    String(number)/String(number) => number
    ここの問題は
    最初に変数をStringとして保存し、0番目の配列を出力します.
    他の開発者がString値をnumberに変更した場合、実行を知らないふりをすると、実行時エラーが発生します.