JavaScript勉強会

JavaScriptの学習日記

【JS学習マラソン】第9回 1.2.6 型変換

JavaScript学習マラソンの第9回は、

「現代の JavaScript チュートリアル」パート1の2.6「型変換」です。

 

型変換 https://ja.javascript.info/type-conversions

を読んでみます。

 

型変換とは?

型変換 - Wikipedia

型変換(かたへんかん、英: type conversion)とはプログラムにおいて、あるデータ型を他のデータ型に変換することである。

型キャスト(英: type casting)とも呼ばれる。

 

データの「型」(Type)

コンピューターのプログラムは、

  1. データ
  2. 処理

という2つの構成要素から成り立っています。

 

データには種類があり、データの「型」で分類することができます。

JavaScriptには、7種類のデータ型が用意されていました。

 

jsstudy.hatenablog.com

 

  1. number型: 整数と浮動少数点の数
  2. string型: 文字列
  3. boolean型: 論理値 true、false
  4. null型: 値が「空」「存在しない」ことを意味する特殊なデータ
  5. undefined型: 値が「未定義」であることを意味する特殊なデータ
  6. object型: 複数の値を格納できる構造を持つデータ
  7. symbol型:  重複しないキーを作れる仕組みで作ったデータ(一意な識別子)

 

型変換ってのは、このデータ型を、あるデータ型から別のデータ型に変更することですね。

例えば、文字としての「1」を数字としての「1」に変える場合、

string型の「1」から、number型の「1」に「型変換」した、ということになります。

型変換することは、「キャストする」とも言ったりします。

 

f:id:jsstudy:20190113194343p:plain

 

キャスト(cast)

キャスト - Wikipedia

キャスト (cast)

割り当てること

  • 映画や演劇などの配役。キャスティング(casting)とも。
  • 配役に基づいて役を演じる俳優、出演者のこと。
  • 型変換。C言語などのプログラミング言語で、変数のデータ型を変換すること。

 

キャスト (cast)とは|IT用語辞典

変数の型を別の型に変換するのが「キャスト」です。

「型変換」とも呼ばれます。

 

ダンボール箱の例えで言えば、マジックで書いた「食べ物用」という文字を消して「飲み物用」と書くイメージです。

 

f:id:jsstudy:20190113161437p:plain

 

自動の型変換と手動の型変換

JavaScriptは、動的な型付けの言語です。

=変数を用意するとき、中に入れるデータの型を指定しなくてもOK。

=後で勝手にデータ型を変えられる仕組みを採用

=これを「動的な型付け」という。

 

Javaなど、静的な型付けの言語では、変数を用意するとき、最初からデータ型を指定する必要があります。

 

// Javaの変数宣言
int number; // int型の変数numberを宣言 String str; // String型の変数strを宣言

 

JavaScriptは、一つの変数に、string型でもnumber型でもboolean型でも、何でも入れられます。

 

文字列を連結したり、足し算の計算をしたりなど、データを処理する途中で、変数の中に入っているデータの型が不都合な場合(データ同士の型が合わないとか)があります。

そういうときには、JavaScriptのインタプリタ―が自動的にデータの型変換を行ってくれます。

チュートリアルで紹介されている例を見てみましょう。

 

'+'は文字列を連結します

alert( 1 + '2' ); // '12' (右側が文字列)
alert( '1' + 2 ); // '12' (左側が文字列)

 

数値型の「1」と文字列型の「"2"」を、それぞれ文字として扱い、文字を連結する場合、数値型の「1」を文字列型の「"1"」に自動的に型変換してくれます。

文字列の「"1"」と「"2"」を連結したら、「"12"」となります。 

これが静的な型付けの言語なら、型エラーになって、処理がエラーになります。

=「1」は文字列型ではなく数値型なので、文字列の連結操作はできない。

 

型変換の関数

本当は文字列の連結ではなく、足し算をしたかった場合はどうすれば良いでしょうか?

JavaScriptの自動の型変換も完璧ではないので、思った通りの動作をしない場合もあります。

そういうときは、プログラマーが手動で型変換することもできます。

 

文字列変換 String(value

数値変換 Number(value)

Boolean変換 Boolean(value)

 

以下のようなサンプルコードで、手動による型変換の動作を確認してみました。 

let num = 1;
let str = '2';
console.log( num + str ); // '12' (右側が文字列)
let cast = Number(str);
console.log( num + cast ); // 3 (右側が数値に型変換されている)

 

Number()で文字を数字に変換できてきました。

 

まとめ

  • 型変換とは、データの型を変えることです。
  • 型変換は「キャスト」ともいいます。
  • JavaScriptは、自動的に型変換してくれる言語です。
  • 自動でうまくいかない場合は、手動で強制的に型変換することもできます。

 

3つの最も広く使われている型変換があります:

  1. 文字列変換,
  2. 数値変換,
  3. 真偽値変換

です。

 

 

 

知識ゼロからのJavaScript入門

知識ゼロからのJavaScript入門