2012年10月24日
変数の型判定
{a8.net http://books.livedoor.com/item/3481813}実際のところ、typeof 演算子があれば事足りるのかもしれませんが、
どうも文字列で判定するのがしっくりとこなかったので、
プロパティ等で判定できるかどうかを考えてみました。
まずは数値。
これは isNaN がいいかなと思います。
ただし、オブジェクトの既定のプロパティが数値だった場合など、
判定を間違うことがあると思います。
余談ですが、数値やブール型に toString が使えます。
次に文字列。これは、文字列オブジェクトについてくるメソッドの存在確認を行なえばいいかなと思います。
次に配列オブジェクト。一番使う join でいいと思います。
ちなみに select 要素の場合、selectedIndex や options で判定できます。
input タグは、方法を探しましたが、type で判断するしかなさそうです。
type は小文字変換をして、将来の仕様に合わせます。
{a8.net http://books.livedoor.com/item/3481813}
どうも文字列で判定するのがしっくりとこなかったので、
プロパティ等で判定できるかどうかを考えてみました。
まずは数値。
これは isNaN がいいかなと思います。
ただし、オブジェクトの既定のプロパティが数値だった場合など、
判定を間違うことがあると思います。
var exp = 0;
alert(isNaN(exp));
余談ですが、数値やブール型に toString が使えます。
var exp=123;
alert(exp.toString());
var exp = false;
alert(exp.toString());
次に文字列。これは、文字列オブジェクトについてくるメソッドの存在確認を行なえばいいかなと思います。
var exp = "";
alert(!!exp.replace);
次に配列オブジェクト。一番使う join でいいと思います。
var exp = [];
alert(!!exp.join));
ちなみに select 要素の場合、selectedIndex や options で判定できます。
var exp = document.createElement('select');
alert(exp.selectedIndex !== undefined);
input タグは、方法を探しましたが、type で判断するしかなさそうです。
type は小文字変換をして、将来の仕様に合わせます。
var exp = document.createElement('input');
exp.type = 'radio';
alert(exp.type.toLowerCase());
{a8.net http://books.livedoor.com/item/3481813}
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image
posted by FJT at 00:59| javascript