typeof运算符我来到下表其状态的对象的内部[[Class]]
属性及其相应的值,该typeof
运营商的回报跨越。了解在Javascript
Value Class Type
-------------------------------------
"foo" String string
new String("foo") String object
1.2 Number number
new Number(1.2) Number object
true Boolean boolean
new Boolean(true) Boolean object
new Date() Date object
new Error() Error object
[1,2,3] Array object
new Array(1, 2, 3) Array object
new Function("") Function function
/abc/g RegExp object (function in Nitro/V8)
new RegExp("meow") RegExp object (function in Nitro/V8)
{} Object object
new Object() Object object
这里要注意的一件事是typeof
正确返回Javascript中关联的原始数据类型。
然而,它返回一个object
类型从Array.prototype
继承的阵列,但返回function
型为从Function.prototype
继承的功能。由于一切都是Javascript中的对象(包括数组,函数&原始数据类型对象),我发现typeof
运算符的这种行为非常不一致。
有人可以扔在typeof
操作在现实中是如何工作的一些轻?
您应该考虑** instanceof **处理对象时https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/instanceof – ymz
只有某些类型具有特定的结果。每个其他类型都被视为一个对象。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof – Armin
如果typeof返回所有对象的'object',因为所有东西都是javascript中的对象,那么它就完全没用了。 –