JSは2週間勉強します.JavaScript基本構文、データ型、変数


データ型と変数


JSでのデータ型


JavaScript(ES 6)には8種類のデータ型があります.
データ型
  • 元のタイプ
  • デジタルタイプ
  • 文字列タイプ
  • ブリテンタイプ
  • 未定義タイプ
  • 空タイプ
  • シンボルタイプ
  • BigIntタイプ
  • オブジェクトタイプ
  • JSのデータ型は大きく分けて2種類ある.これからは、元のタイプとオブジェクトタイプを破壊します.

    元のタイプ


    オブジェクト以外のすべてのタイプでは、変更できない値が定義されています.
    これを元のタイプと呼び、変更できない値がどういう意味かを見てみましょう.
  • let a
    a変数を生成して初期化する.値が指定されていない場合、undefinedはメモリに
  • 格納されます.
  • a = 'hello'
    a変数に「hello」値を指定すると、既存の101番アドレスに書き込むのではなく、新しいアドレスに値が含まれます.
  • a = 'hi'
    a変数にhiという値を再割り当てすると、その値は新しい104番アドレスに含まれます.
  • これらの値は直接変更されるのではなく、新しいメモリ領域を割り当て、値を変更するために「変更できない値」です.call by valueです.
    文字列の一部を変更すると、一部だけが変更される場合がありますが、実際には変更された文字列が新しいメモリに保存されているため、全体的な変更と変わりません.

    オブジェクトタイプ


    オブジェクトとは、識別子として参照できるメモリの値です.
    オブジェクトの数が不確定です.
    オブジェクトには変更可能なフィーチャーがあります.
    識別子:識別子は一意の名前で、任意の値を識別することで値を識別できます.
    Property:키:값ペアはPropertyです.

    上記のピクチャのa変数にオブジェクトを割り当てると、直接値ではなく参照値が格納されます.
    このような変更可能な特徴があるのは、オブジェクトに多くのpropertyがあるためです.これらのpropertyを再作成して使用するたびに、効率が非常に低下します.そのため、価格を変えることができ、効率を高めることができます.
    この値は可変です.call by referenceです.
    しかし、この変更可能性は、複数の識別子が同時に1つのオブジェクトにアクセスできることを意味し、位置オブジェクトの共有をもたらす.

    浅い放射


    複数の識別子が1つのオブジェクトを共有できるため、浅いコピー後に変更された値は、オブジェクト全体を変更します.
    let person1 = {name: 'jamong'}
    let person2 = person1; // 얕은 복사 일어남.
    
    person2.name='oseung' // name에 'oseung'할당.
    
    console.log(person1) // {name: 'oseung'}
    console.log(person2) // {name: 'oseung'}

    ふかほうしゃ

    let person1 = {name: 'jamong'}
    let person2 = {...person1}; // 깊은 복사 일어남.
    
    person2.name='oseung' // name에 'oseung'할당.
    
    console.log(person1) // {name: 'jamong'}
    console.log(person2) // {name: 'oseung'}

    元のタイプ


    数値タイプ


    名前の通り、整数と実数の区別がない数字タイプです.(内部では、これらはすべて予期せぬデータ処理です)
    // 모두 숫자 타입
    const integer = 7;
    const double = 10.222;
    const binary = 00111;

    文字列タイプ


    テキストデータを表す文字列タイプ
    const str = '안녕하세요'
    const str1 = "안녕하세요"
    const str2 = `안녕하세요`

    不規則なタイプ


    真/偽の不規則なタイプを表す
    const a = true;
    const b = false;

    未定義のタイプ


    変数を宣言した後、値が設定されていない場合は、定義されていない変数に値を割り当てます.
    var a;
    console.log(a); // undefined

    空のタイプ


    変数に値がないことを意図的に宣言するために使用します.
    let a = null;
    console.log(typeof a); // null

    シンボルタイプ


    ES 6に追加されたタイプは、変更できない元のタイプの値です.
    これは、他の値と重複しない一意の値です.
    // case 1
    const a = 'sample'
    const b = 'sample'
    console.log(a===b) // true
    // case 2
    const a = Symbol('sample');
    const b = Symbol('sample');
    console.log(a===b) //false

    BigIntタイプ


    ES 2020に追加されたタイプは、既存の数字では処理できない大きな数を処理します.
    const num = 123123123n;
    console.log(typeof num); // bigInt

    オブジェクトタイプのタイプ


    オブジェクト、関数、配列などの元の値を除いて、他のタイプはオブジェクトタイプです.

    リファレンス


    https://junwoo45.github.io/2019-11-04-memory_model/