kakts-log

programming について調べたことを整理していきます

javascript typeof演算子について

javascriptは、変数自体に型がなく、代入したものによって型がきまる動的型付けの性質をもっている。
型については、以下の6種類がある。
  1. 文字列型(文字型は存在せず、1文字の長さの文字列で表現する)
  2. 数値型(javaなどのように、intやfloatなどの区別は無く、内部的には64ビットの浮動小数点)
  3. boolean型(true or false)
  4. null型(nullのみ)
  5. undefined型
  6. 以上が基本型で、もう一つは
  7. オブジェクト型
この6種類の型が、代入した値によって決められる。 変数同士の値の比較の際には、動的に決められる変数の型を意識することが重要で、変数の型を知る場合には typeof演算子を利用する。
文字列のリテラルを例にすると、
typeof 'abc'; とした場合は、
string
と返される。

ここでポイントなのが、typeof による戻り値は、stringという文字列として返されることである。

var s = 'test';
typeof test; //変数testの値に対するtypeof演算
typeof (s); //かっこをつけても大丈夫
typeof(typeof(s)); //typeof演算の結果は文字列値なので、このも外側のtypeofに引数としてstringという文字列が渡される。


jsにおける型はjavaなどと違っていて、変数同士の値もしくは型の比較についてもまたやっかいな問題があるが、それはまた追ってエントリを書きたいと思う。