トップページ >  javascript >  オブジェクトの型を調べる
初版2008/11/05: 最終更新日2013/01/12
  オブジェクトの型を調べる
目次
オブジェクトの型を調べる
型の比較方法
オブジェクトの型を調べる
JavaScriptの変数は場合に応じて文字列になったり数値になったりします。
このオブジェクトの型を調べたい場合にはtypeof関数を使用します。
戻り値は、以下の通りです。

戻り値
number
string
object
boolean
function
undefined

以下、例を見てください。

<script type="text/javascript">
<!--
var a;
var b=true;
var c = new Array();
var fnc = function(){};
document.write(typeof(1) + "<br />");
document.write(typeof("1") + "<br />");
document.write(typeof(c) + "<br />");
document.write(typeof(b) + "<br />");
document.write(typeof(a) + "<br />");
document.write(typeof(fnc) + "<br />");
  -->
</script>

実行すると以下のように出力されます。


typeof 1というように記述することも出来ます。

型の比較方法
JavaScriptで型を比較するには、===を使う方法があります。
但し、undefinedは予約語ではなく変数のため、ブラウザによっては上書きすることが出来ます。Chrome23では上書きが出来ました。
そのため、以下のような書き方をすると間違ったロジックを通る可能性があります。

<script type="text/javascript">
<!--
function x(){
    var i;
    var undefined = 1;
    if(i === undefined){
        alert("未定義です" + undefined);
    }else{
        alert("定義済みです" + undefined);
    }
}
  -->
</script>

ボタンを押すと、どちらのロジックを通るか確認が出来ます。



undefinedの判断はtypeof演算子を使います。上記ロジックを以下のように書き換えます。
typeof演算子の戻り値はstringのため、==で判断に変えていいと思います。

以下、ソースです。

<script type="text/javascript">
<!--
function x(){
    var i;
    if(typeof(i) == "undefined"){
        alert("未定義です");
    }else{
        alert("定義済みです");
    }
}
  -->
</script>

ボタンを押すと、どちらのロジックを通るか確認が出来ます。