【JS】変数 暗黙的な型変換

目次

暗黙的な型変換の定義

変数が呼ばれた状況によって、変数の方が自動的に変換されること。

プログラミング言語による型宣言の違い

動的型付け言語

  • 変数宣言時の型の宣言なし
  • 変数を使用する状況によって、変数の型が変更される。
let a = 0;

JavaScriptで変数を定義する際、let, const, varを使用するが、これ自体には型の情報は入っていない。そのため、右辺側(上記の場合0)で代入される値で一時的に型が決定する。

型が使用される状況によって、変わってくることとなる。

静的型付け言語

  • 変数宣言時の型の宣言あり
  • 変数を使用する状況によらず、常に同じ型を保持
int a = 0;

C言語やJAVAの宣言型付け言語では、整数値を定義する場合はintを使用する。
これらの言語では型の取り扱いが厳密になるため、その変数には常に同じ型を保持することとなる。

「動的型付け言語」と「静的型付け言語」のメリット・デメリット

動的型付け言語は、記述量が少なくなり、小規模のプロジェクト時に便利。
大きいプロジェクトだと変数の型が追いづらくなるため、静的型付け言語の方がメンテナンスがしやすい。

また、静的型付け言語は、型があらかじめ決まっているため、プログラムの実行時のパフォーマンスがよくなる傾向にある。

JavaScriptにおける暗黙的な型変換

let a = 0;
console.log(typeof a) // typeofでデータ型を取得
// number(数値)が表示される
function printTypeAndValue(val) {
  console.log(typeof val, val);
}

let a = 0;

printTypeAndValue(a);

let b = '1' + a;
// aは文字列に暗黙的に変換

printTypeAndValue(b);

let c = 15 - b;
// - は数値にしか使用しないため、bは暗黙的に変換され、数値となる

printTypeAndValue(c);

let d = c - null;
// nullは空→数値の0に暗黙的に変換

printTypeAndValue(d);

let e = d - true;
// 真偽値trueは、数値の計算に使用されると数値の1と変換される

printTypeAndValue(e);

let f = parseInt('1') + a;
// 文字列を数値に直す関数
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次