[テクニカルインタビュー]JavaScript-データ型とタイプ変換


🎈 データ型が必要な理由

  • は、メモリ値を決定するために必要なメモリ領域のサイズを決定するために使用される.
  • は、
  • の値を参照するときに一度に取得する必要があるメモリ領域のサイズを決定するために使用される.
  • は、メモリから取得されたバイナリ数をどのように解釈するかを決定する.

    💡 静的タイピングとは?


    変数を宣言するときに変数に割り当てられる値のタイプ、すなわち、事前に宣言されたデータ型(明示的なタイプ宣言)
    // c 변수에는 1바이트 정수 타입의 값만을 할당할 수 있다.
    char c;
    // num 변수에는 4바이트 정수 타입의 값만을 할당할 수 있다.
    int num;
  • 変数のタイプは変更できません.
  • 宣言タイプに一致する値は、
  • 変数にのみ割り当てられます.
  • コンパイル時にタイプチェックを実行します.(不合格エラー)
  • 成熟した言語:C、C++、Javaなど
  • 💡 ダイナミックタイプとは?


    変数の宣言時にタイプを宣言しない
  • JavaScriptの変数は、宣言ではなく割り当てによって決定されます.(類型推論)
  • に従って再割り当てされ、変数のタイプはいつでも動的に変化することができる.
  • 代表的な動的タイプ言語:JavaScript、Python、PHPを含む
  • 💡 明示的なタイプ遷移とは?


    開発者が意図的に値を変換するタイプ(=タイプ鋳造)
    var x = 10;
    
    // 숫자를 문자열로 타입 캐스팅
    var str = x.toString();
    console.log(typeof str, str); // string 10
    
    // x 변수의 값이 변경된 것은 아님
    console.log(typeof x, x); // number 10

    🎈 明示的なタイプ変換関数の例


    文字列以外の値を文字列タイプに変換します.
    1.new演算子を使用せずにStringコンストラクタを呼び出す
    String(1);
    2. Object.prototype.TOStringメソッドの使用方法
    (1).toString();
  • 文字列を使用して演算子を接続する方法
  • 1 + "";
    数値タイプ以外の値を数値タイプに変換します.
    1.new演算子を使用せずにNumberジェネレータ関数を呼び出す
    Number("0")
  • 解析器Int、解析器Float関数(文字列のみ)
  • の使用方法
    parseInt("0");
  • +単項演算子を使用する方法
  • +"0";
  • *算術演算子
  • の使用方法
    "0" * 1;
    Booleanタイプ以外の値をBooleanタイプに変換します.
    1.new演算子を使用せずにBooleanコンストラクタを呼び出す
    Boolean("x");
    Boolean(0);
  • !2回の否定論理演算子
  • を使用
    !!"x";
    !!0;

    💡 デフォルトのタイプ変換とは?


    開発者の意図を考慮せずに、式の計算中にJavaScriptエンジンによって自動的に暗黙的に変換されます(=強制型変換)
    var x = 10;
    
    // 문자열 연결 연산자 (+)는 숫자 타입 x의 값을 바탕으로 새로운 문자열을 생성함
    var str = x + "";
    console.log(typeof str, str); // string 10
    
    // x 변수의 값이 변경되는 것은 아님
    console.log(typeof x, x); // number 10

    🎈 truthy/falsy


    JavaScriptエンジンは、ブール以外のタイプの値をTruthy値またはFalsy値に区別します.
  • flasy値(falseと推定)
  • false
    undefined
    null
    0, -0
    NaN
    ' '
  • Truthy値(Falsy値に!)
  • !false
    !undefined
    !null
    !0, !-0
    !NaN
    !' '