我正在使用 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)
[object Object],我不明白为什么。我试图在 jsfiddle.net 上复制它但不能,所以我假设我处于特定的怪癖模式。
我的问题:
- 这是一种已知的“行为”,什么时候发生?
- 有没有更可靠的方法来检查对象类型(我需要支持 IE7+)?