logo header
logo header
logo header
logo header
  • 2015.06.25
  • 技術ブログ開発

JavaScriptのデータ型の謎を解く

こんにちは、農道JSです。

現代良く使われているJavaScriptというプログラミング言語のデータ型についてお話しをしたいです。

Loosely Typed

JavaScriptは(PHP等と同じく)弱く型付けされた(いわゆる「loosely typed」)言語です。

つまり変数を定義する時に、型を指摘しなくても良いです:

いきなり別のデータ型に変更する事も可能です:

JavaScriptのデータ型はBoolean・Null・Undefined・Number・String・Objectになります。
(後は、数日前リリースされたECMAScript 6から、Symbolもあります)

データ型を判別する方法

データ型を定義しなくても良いなら、変数に入っているデータ型はどうやって判別できますか?
「typeof」登場:

「typeof」はデータ型を文字列としてreturnします。
定義されてない変数はデフォルトに「undefined」になります:

上記のように、「typeof」を使う事によって、データ型が判別する事ができます。
(後、「undefined」であるかどうかのチェックによって、そもそも定義されているかどうかの判別もできます)

違うデータ型との比較

JavaScriptでは変数のデータ型の指定がない為、どんなデータでも比較できます:

..あれ?「1 == "1"」では、データ型が違うの数値の「1」と文字列の「"1"」を比較するのに「true」をreturnしますか?

そうです。

これはJavaScriptの一つの混乱されるところです。
「==」と「!=」はいわゆる「通常の等価演算子」です。
「0 == false」・「1 == true」・「1 == "1"」のような「ある意味で同じ」パターンは「true」をreturnします。

データ型含めて比較したい場合は「厳密等価演算子」、つまり「===」と「!==」を使うほうが適切です:

最後に

JavaScriptについて知るべき事:

  1. ● JavaScript = ECMAScript
  2. ● JavaScript != jQuery(jQueryはJavaScriptのライブラリしかならない)
  3. ● JavaScript != WEBブラウザー用のプログラミング言語(ブラウザーでも使える、サーバ側等でも使える)
  4. ● 「Java」と「JavaScript」の関係は「缶」と「看板」と同じ関係です
  5. ● JavaScriptは他のプログラミング言語以下の物ではなく、使い方次第です!

ともに世界をアップグレードできる、そんな日を夢見て。
Upgrade the World!