【JS学習マラソン】第9回 1.2.6 型変換
JavaScript学習マラソンの第9回は、
「現代の JavaScript チュートリアル」パート1の2.6「型変換」です。
型変換 https://ja.javascript.info/type-conversions
を読んでみます。
型変換とは?
型変換(かたへんかん、英: type conversion)とはプログラムにおいて、あるデータ型を他のデータ型に変換することである。
型キャスト(英: type casting)とも呼ばれる。
データの「型」(Type)
コンピューターのプログラムは、
- データ
- 処理
という2つの構成要素から成り立っています。
データには種類があり、データの「型」で分類することができます。
JavaScriptには、7種類のデータ型が用意されていました。
- number型: 整数と浮動少数点の数
- string型: 文字列
- boolean型: 論理値 true、false
- null型: 値が「空」「存在しない」ことを意味する特殊なデータ
- undefined型: 値が「未定義」であることを意味する特殊なデータ
- object型: 複数の値を格納できる構造を持つデータ
- symbol型: 重複しないキーを作れる仕組みで作ったデータ(一意な識別子)
型変換ってのは、このデータ型を、あるデータ型から別のデータ型に変更することですね。
例えば、文字としての「1」を数字としての「1」に変える場合、
string型の「1」から、number型の「1」に「型変換」した、ということになります。
型変換することは、「キャストする」とも言ったりします。
キャスト(cast)
キャスト (cast)
割り当てること
変数の型を別の型に変換するのが「キャスト」です。
「型変換」とも呼ばれます。
ダンボール箱の例えで言えば、マジックで書いた「食べ物用」という文字を消して「飲み物用」と書くイメージです。
自動の型変換と手動の型変換
JavaScriptは、動的な型付けの言語です。
=変数を用意するとき、中に入れるデータの型を指定しなくてもOK。
=後で勝手にデータ型を変えられる仕組みを採用
=これを「動的な型付け」という。
Javaなど、静的な型付けの言語では、変数を用意するとき、最初からデータ型を指定する必要があります。
JavaScriptは、一つの変数に、string型でもnumber型でもboolean型でも、何でも入れられます。
文字列を連結したり、足し算の計算をしたりなど、データを処理する途中で、変数の中に入っているデータの型が不都合な場合(データ同士の型が合わないとか)があります。
そういうときには、JavaScriptのインタプリタ―が自動的にデータの型変換を行ってくれます。
チュートリアルで紹介されている例を見てみましょう。
'+'は文字列を連結します
数値型の「1」と文字列型の「"2"」を、それぞれ文字として扱い、文字を連結する場合、数値型の「1」を文字列型の「"1"」に自動的に型変換してくれます。
文字列の「"1"」と「"2"」を連結したら、「"12"」となります。
これが静的な型付けの言語なら、型エラーになって、処理がエラーになります。
=「1」は文字列型ではなく数値型なので、文字列の連結操作はできない。
型変換の関数
本当は文字列の連結ではなく、足し算をしたかった場合はどうすれば良いでしょうか?
JavaScriptの自動の型変換も完璧ではないので、思った通りの動作をしない場合もあります。
そういうときは、プログラマーが手動で型変換することもできます。
文字列変換 String(value)
数値変換 Number(value)
Boolean変換 Boolean(value)
以下のようなサンプルコードで、手動による型変換の動作を確認してみました。
Number()で文字を数字に変換できてきました。
まとめ
- 型変換とは、データの型を変えることです。
- 型変換は「キャスト」ともいいます。
- JavaScriptは、自動的に型変換してくれる言語です。
- 自動でうまくいかない場合は、手動で強制的に型変換することもできます。
3つの最も広く使われている型変換があります:
- 文字列変換,
- 数値変換,
- 真偽値変換
です。