型の判定(typeof)

JavaScriptでは動的に型を決めれる為、後方の処理で、型の判定が必要な場合がでてきます。特にundefined(未定義)の場合は判定を使うことがよくあります。

  • undefined判定
var test;

// undefined判定
if (test === undefined) {
    alert("未定義時");
}

if (test !== undefined) {
    alert("定義時");
}

if (typeof test === 'undefined') {
    alert("未定義時");
}

if (test === void 0) {
    alert("未定義時");
}

※undefinedを判定する場合、通常の等価演算子 (==)よりも強い(===)を使っています。(==)の場合は、nullの場合も判定される為です。typeofを使う場合もありますが、undefinedを判定するだけであれば、(===)で問題ないかと思います。少なくともtypeofを使う際には、変数定義がされていない場合でもエラーにはなりませんが、この理由で使うのは避けた方がよいと思います。voidを使って判定もできますが、個性が強いで使っていません。functionも判定できますが、使うシーンが少ないです。

  • typeof判定
var test = 100;

if (typeof test === 'number') {
    alert("Number時");
}

if (typeof test === 'string') {
    alert("String時");
}

if (typeof test === 'boolean') {
    alert("Boolean時");
}

if (typeof test === 'object') {
    alert("Object時");
}

上記のように単純に数値や文字を判定するような事は、実業務ではほとんどありません。そもそも変数を使用する際に用途に必要な型を決めて使うからです。中身が何かを後から判定するという事自体が少ないです。ちなみにnullはobjectにて判定できますが、typeofを使わずに素直にtest == nullで問題ないと思います。

Leave a Reply

Your email address will not be published. Required fields are marked *