我很好奇,因为我认为
Object.prototype.toString.call(null)
Run Code Online (Sandbox Code Playgroud)
返回[object Object],但现在我在 Chrome 和 FF 中检查,并且都返回了[object Null]。现在的问题是,我是否可以假设 Object.prototype.toString 总是会告诉我好的类型?
到目前为止,我正在使用此方法检查每种类型,但不是空值,我正在检查空值
obj === null;
Run Code Online (Sandbox Code Playgroud)
谢谢!
澄清说明:这个“问题”不是一个严重的情况,因为我正在使用 atm
function isNull(obj) {
return obj === null;
}
function isUndefined(obj) {
return typeof obj === 'undefined';
}
Run Code Online (Sandbox Code Playgroud)
这工作得很好,但如果Object.prototype.toString.call()将旧的浏览器工作充分,我可能会下降这两个功能,并延长我的解决方案null和undefined这样的:
Object.prototype.toString.call(null)
Run Code Online (Sandbox Code Playgroud)
obj === null;
Run Code Online (Sandbox Code Playgroud)
这是在EcmaScript 5.1 第 15.2.4.2 节中定义的 -Object.prototype.toString():
调用该方法时
toString,会执行以下步骤:
- 如果
this值为undefined,则返回"[object Undefined]"。- 如果
this值为null,则返回"[object Null]"。- 让是调用将值作为参数传递
O的结果。ToObjectthis- 让是 的内部属性
class的值。[[Class]]O"[object "返回 String 值,该值是连接三个 String 、class和的结果"]"。
EcmaScript 5对其定义有所不同:
调用该方法时
toString,会执行以下步骤:
- 让是调用将值作为参数传递
O的结果。ToObjectthis- 让是 的内部属性
class的值。[[Class]]O"[object "返回 String 值,该值是连接三个 String 、class和的结果"]"。
| 归档时间: |
|
| 查看次数: |
8497 次 |
| 最近记录: |