Object.prototype.toString.callを使用して変数タイプを識別しています。私は次の動作を期待します:
Object.prototype.toString.call({}) => [object Object]
Object.prototype.toString.call([]) => [object Array]
Object.prototype.toString.call(undefined) => [object Undefined]
Object.prototype.toString.call(null) => [object Null]
これは通常は正常に機能しますが、現在(Internet Explorerで)両方Object.prototype.toString.call(undefined)
とObject.prototype.toString.call(null)
[オブジェクトオブジェクト]を返す状況に直面しており、その理由がわかりません。jsfiddle.netで複製しようとしましたが、複製できなかったため、特定のクァークモードにいると想定しています。
私の質問:
- これは既知の「動作」ですか。これはいつ発生しますか?
- オブジェクトタイプをチェックするためのより信頼性の高い方法はありますか(IE7 +をサポートする必要があります)?