JavaScriptで変数が定義済みかどうかを判定するには、typeofを使用できます:
例
if(typeof someVar == 'undefined') {
document.write("変数 someVar は未定義です");
} else {
document.write("変数 someVar は定義済みです");
}
document.write("変数 someVar は未定義です");
} else {
document.write("変数 someVar は定義済みです");
}
試してみる »
JavaScriptで定義済みの変数がtrueかどうかだけを判定したい場合は、以下の方法を直接使用できます:
例
if (strValue) {
// strValue が true の場合に実行されるコード
} else {
// strValue が false の場合に実行されるコード
}
// strValue が true の場合に実行されるコード
} else {
// strValue が false の場合に実行されるコード
}
試してみる »
以下は、正規表現を使用して変数が定義済みかつ空でないかを判定する、比較的完全な方法です:
例
if ( // 判定結果の値を返す
(typeof x == 'undefined')
||
(x == null)
||
(x == false) // !x に類似
||
(x.length == 0)
||
(x == 0) // ここでは0を判定しており、わざわざ除外する必要はない
||
(x == "")
||
(x.replace(/\s/g,"") == "")
||
(!/[^\s]/.test(x))
||
(/^\s*$/.test(x))
) {
document.write("変数が未定義または空です");
}
(typeof x == 'undefined')
||
(x == null)
||
(x == false) // !x に類似
||
(x.length == 0)
||
(x == 0) // ここでは0を判定しており、わざわざ除外する必要はない
||
(x == "")
||
(x.replace(/\s/g,"") == "")
||
(!/[^\s]/.test(x))
||
(/^\s*$/.test(x))
) {
document.write("変数が未定義または空です");
}
試してみる »
空値、0、falseなどを含めて判定するメソッドをカプセル化することもできます。定義済みの変数に適用できます:
例
function empty(e) {
switch (e) {
case "":
case 0:
case "0":
case null:
case false:
case undefined:
return true;
default:
return false;
}
}
empty(null) // true
empty(0) // true
empty(7) // false
empty("") // true
empty((function() {
return ""
})) // false
switch (e) {
case "":
case 0:
case "0":
case null:
case false:
case undefined:
return true;
default:
return false;
}
}
empty(null) // true
empty(0) // true
empty(7) // false
empty("") // true
empty((function() {
return ""
})) // false
試してみる »