1. ホーム
  2. ジャバスクリプト

[解決済み】Javascriptの変数の型を取得するためのより良い方法?

2022-04-19 13:05:19

質問

JSで変数の型を取得するために、以下のような良い方法はありますか? typeof ? すると正常に動作します。

> typeof 1
"number"
> typeof "hello"
"string"

でも、やってみると無駄なんですよね。

> typeof [1,2]
"object"
>r = new RegExp(/./)
/./
> typeof r
"function"

を知っている instanceof しかし、これにはあらかじめ型が分かっている必要があります。

> [1,2] instanceof Array
true
> r instanceof RegExp
true

もっといい方法はないのでしょうか?

どのように解決するのですか?

アンガス・クロールが最近、この件に関して興味深いブログ記事を書いています。

http://javascriptweblog.wordpress.com/2011/08/08/fixing-the-javascript-typeof-operator/

彼は、様々なメソッドの長所と短所を説明し、新しいメソッド「toType」を定義しています。

var toType = function(obj) {
  return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase()
}