[TIL]DREAM符号化javascript(3)

4490 ワード


3. Javascript data types, Variable types


今日はDREAMコードの3強に入りました.闻く时间はたくさんあるけど难しすぎる.
終業時間になってやっと片付ける
難しくて疎かなので、他の人のメッセージを参考にして、位置付けをしたいと思います.
レッスンリンク:エリー
その他の開発者クリーンアップリンク:ljh95.log

1.let

// let(added ES6)
{
    let name = 'ellie';
    console.log(name);
    name = 'hello';
    console.log(name);
}
  • letはes 6から追加を開始します.
  • の値を変更し続けることができます.
  • 他の開発者のブログではscopeが可能だと言っていますが、この部分は理解できません.
  • IEはサポートされていないため、BABELを使用して開発し、ダウングレードバージョンで変換できます.今IEは心配しなくてもいいです.^^
  • 2.var

  • varはes 6以前に使用されたキーワードです.
  • は非常に柔軟な関数であり、プログラミングが容易であるという利点があるが、値を宣言する前に使用できるため、リスクがある.
  • 欠点は
  • Block Scopeを無視し、随所に見られることです.
  • 揚昇:これを探してください.何を言ってるんだ?
    エリー氏は、「昇進:Hoistingがどこで宣言しても、宣言を一番上に掲げている.見つけたら、そう言うのは間違っている」と話した.もっと正解に近い馬を探しましょう!

    +)番外説明


    Block Scope

    {
        let name = 'ellie';
        console.log(name);
        name = 'hello';
        console.log(name);
    }
    ✔ブロック内でコードを作成した後、ブロック外でブロック内の内容を見ることができなくなる
    ✔つまり、必要な場所でしか定義できません!効率性

    Global Scope


    ✔逆に、block以外で直接変数を定義する子どもたち
    ✔随所に見られる(運転時は常にメモリ中、ブロックへの書き込みを推奨)

    😀 結論:Blockでコードを書くのが望ましい~


    3. Constants


    🔒 ポインタがロックされています
    ❌値の宣言および割当後の変更不可
    ✔ 1. 変更不可なのでハッカーの侵入を防ぐことができます.値を同時に割り当てるスレッドからのリスクを回避します3.人為的なエラーを減らす

    +)番外説明


    Mutable Type:値変更可能な関数(let)


    Immutable Type:値指定後、変更不可の関数(const)


    😀 結論:一般的にはconstで記入したほうがいいです!


    4. Variable types


    ✔プログラミング言語はいずれもオリジナルタイプとobjectタイプの2種類に分けられます

    primitive type


    ✔とは、これ以上シェアできない単品のこと.
    ✔ ex) number, string, boolean, null, undefind, symbol

    object type


    4-1. Number


    ☝javascriptはC言語やJAVAと異なり、値の大きさや小数点に応じて関数を変更する必要はなく、1つの数字だけで済みます.
    
    // 다른 프로그래밍 언어와 달리 17이든 17.1이든 number 하나로 통용해서 표현할 수 있어
    생략하기도 하는 것 같다.
    
    const count = 17;
    const size = 17.1;
    console.log(`value: ${count}, type: ${typeof count}`);
    console.log(`value: ${size}, type: ${typeof size}`);
    
    // number - speical numeric values:
    const infinity = 1 / 0;
    const negativeInfinity = -1 / 0;
    const nAn = 'not a number' / 2;
    console.log(infinity);
    console.log(negativeInfinity);
    console.log(nAn);

    4-2. String


    ☝は他の言語とは異なり、1つの文字でも1つの文でもstringは1つのタイプです.
    const char = 'c';
    const brendan = 'brendan';
    const greeting = 'hello' + brendan;
    console.log(`value: ${greeting}, type: ${typeof greeting}`);
    const helloBob = `hi ${brendan}!`; //template literals (string)
    console.log(`value: ${helloBob}, type: ${typeof helloBob}`);

    4-3. boolean


    ✔ false: 0, null, undefined, NaN, ''
    ✔ true: any other value
    const canRead = true;
    const test = 3 < 1; //false
    console.log(`value: ${canRead}, type: ${typeof canRead}`);
    console.log(`value: ${test}, type: ${typeof test}`);

    4-4. null

    let nothing = null;
    console.log(`value: ${nothing}, type: ${typeof nothing}`);

    4-5. undefined

    let x;
    console.log(`value: ${x}, type: ${typeof x}`);

    4-6. Symbol

    // symbol, create unique identifiers for objects(맵, 자료구조, 동시다발적인 코드에서 우선순위를 주고 싶을 때)
    const symbol1 = Symbol('id');
    const symbol2 = Symbol('id');
    console.log(symbol1 === symbol2);
    
    //symbol은 같은 id를 줘도 각각 다르게 고유한 symbol
    
    //같은 symbol로 만들고 싶을 때
    const gSymbol1 = Symbol('id');
    const gSymbol2 = Symbol('id');
    console.log(gSymbol1 === gSymbol2); //true
    console.log(`value: ${symbol1.description}, type: ${typeof symbol1}`);

    5. Dynamic typing: dynamically typed language


    🏋️‍♂️ JavaScriptは、CまたはJAVAとは異なり、宣言時にどのタイプであるかを宣言するのではなく、プログラム実行時に割り当てられた値に基づいてタイプ=動的に変更します.
    会社で終わらなかったので、週末まで引きずっていたので、記憶力が少しぼんやりしていました.ㅠ会社に暇があれば、できるだけ簡単に会社が発表できる程度に書きましょう.