データ型(datatype)


データ型は


データ型はプログラミング言語で使用できます
データの種類を指します.

1.JSのデータ型特徴


  • JavaScriptのすべての値にデータ型があります.
    JavaScript ES 6は7種類のデータ型を提供します.

  • JavaScriptが提供する7つのデータ型は2つあります.
    元のタイプ(元のデータ型)とオブジェクトタイプ(object/referenceタイプ)に分けることができます.
  • primitive data type


    1. number


  • JAvascriptのnumber typeはすべての数字を誤って処理します.
    整数で表すのも間違いです.したがって、整数で表す数字については、
    離れてもミスをする.

  • 整数を表すための資料型はありません.
    (Java学習ではint、long、float、doubleなどのタイプはありません)

  • 小数点を表すことができるほか、番号のタイプ
    3つの特殊な値が表現できます.
    +無限(正無限)、-無限(負無限)、
    とNaN(「Not a Number」、算術演算不可).
  • ex)
    const count = 30; // > 정수
    const size = 30.1; // > 실수
    console.log(`value: ${count}, type: ${typeof count}`);// > number type 출력
    console.log(`value: ${size}, type: ${typeof size}`);// > number type 출력
    
    // 특이한 값: infinity, -infinity, NaN
    const infinity = 3 / 0;
    const negativeInfinity = -3 / 0;
    const nAn = `not a number` / 3;
    console.log(infinity); // > Infinity
    console.log(negativeInfinity); // > -Infinity
    console.log(nAn); // > NaN

    2. string


  • 文字列タイプは、テキストデータを表すために使用されます.

  • JavaScriptの文字列は可変ではありません.
    文字列が生成されると、その文字列は変更できません.
    ただし、元の文字列から別の変更された文字列を作成できます.
    例を挙げると理解しています.
  • ex)
    let name = 'kang';
    name = 'jiwon';
    // 코드 첫 줄의 문자열 kang이 생성되었으므로 앞으로 kang은 재사용 x
    // 변수 str은 문자열 ‘kang’을 가리키고 있다가
    //문자열 ‘jiwon’을 가리키도록 변경되었다.
    

    3. boolean


  • 論理データ型、真または偽の値のみ

  • コード・セグメントを実行したり、繰り返しが必要な場合に使用します.
  • ex) 
    function findGreaterNum(num1, num2) {
    
    if(num1 > num2) {
      return  "Big one";
    } else if(num1 < num2) {
      return "Big two";
    } else if(num1 === num2) {
      return  "equal num" ;
    }
    }
    
    const result = findGreaterNum(1,2);
    console.log(result);
    
    // 결과값으론 big two가 출력되었다.
    // if 함수 안의 값이 true라면(= 조건이 맞다면)
    // 해당 return 값을 돌려주겠다는 의미의 코드였다.
    // 코드를 짜며 어디에 쓸 수 있을까 잠깐 고민해봤는데
    // 웹 실행 시 다크 모드에 쓸 수 있겠다는 생각이 들었다.
    

    4. undefined


  • 未定義タイプの値は未定義の一意の値です
    値が指定されていない変数は、未定義のデータ型です.

  • メソッドと宣言はundeffineも返します(評価する変数に値が指定されていない場合)
  • ex)
    
    let k ;
    console.log(k);// 변수 k에 대한 value가 없기 때문에 undefined 출력

    5. null


  • nullタイプの値nullは一意です.
    値が意図的に空であることを示します.
    ブール演算では偽物と見なされる.

  • nullはNull、NULLなどとは異なります.(JS大文字小文字区別)
  • nullとundefinedの違い



    未定義とは異なりnullは元のタイプ(元の値)です.
    JavaScriptはこれを実装エラーと見なします.
    未定義=nullはtrueです.
    ただし、厳密にデータ型をチェックする一致演算子==を使用すると、
    nullとundefinedのデータ型が異なるためfalseが出力されます

    6. symbol

  • Symbolは、一意で変更できないデフォルトです.
    クラスまたはオブジェクトタイプ(objecttype)からの内部アクセスのみを許可
    プライベートオブジェクト属性として使用される鍵.
  • ex)
    // symbol은 개체에 대한 고유 식별자를 생성한다.
    
    const symbol1 = Symbol('k');
    const symbol2 = Symbol('k');
    console.log(symbol1 === symbol2);
    //  false : 동일한 string을 작성해도 다른 symbol로 만들어짐
    
    // string 이 같을 때 동일한 symbol 만들기
    const gSymbol1 = Symbol.for('k');
    const gSymbol2 = Symbol.for('k');
    console.log(gSymbol1 === gSymbol2); // true

    object / reference type


  • 元のタイプ(Primitives)を除いて、残りの値(配列、関数、正規表現など)はオブジェクトです.

  • オブジェクトはプロセスを変更、追加、または削除できるため、可変値と呼ぶことができます.
  • let foo = {
      val: 10
    }
    
    let bar = foo;
    console.log(foo.val, bar.val); // 10 10
    console.log(foo === bar);      // true
    
    bar.val = 20;
    console.log(foo.val, bar.val); // 20 20
    console.log(foo === bar);      // true
    
    
    
    let a = {}, b = {}, c = {}; // a, b, c는 각각 다른 빈 객체를 참조
    console.log(a === b, a === c, b === c); // false false false
    
    
    a = b = c = {}; // a, b, c는 모두 같은 빈 객체를 참조
    console.log(a === b, a === c, b === c); // true true true

    整理する


    特徴を覚えなければならないが、例題をたくさん使うことに気づいた.
    コードは絶対に暗記ではありません!
    Reference
    MDN
    PoiemaWeb
    25%
    Dream coding