x
是一个数组。typeof东西返回对象而不是数组
我做console.log(x)
我
[ 'value' ]
,但是当我检查的X型像console.log(typeof x)
它说,它是一个对象。为什么?
x
是一个数组。typeof东西返回对象而不是数组
我做console.log(x)
我
[ 'value' ]
,但是当我检查的X型像console.log(typeof x)
它说,它是一个对象。为什么?
数组是一个对象类型,所以它很好!
根据MDN,在使用typeof时,javascript中没有数组类型 只有对象。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof
'typeof'并不总是返回数据类型..对于'function(){}'它会返回'function',但是没有数据键入为“功能”.. – Rayon
,如果你的目的是检查时,“是Array或不”?您更好地使用
Array.isArray()
的Array.isArray()方法,如果对象是一个数组,如果其为不返回true。 LINK
所以你可以尝试
if(typeof x === 'object' && Array.isArray(x)) {
//Its an array
}
UPDATE: 数组是一个对象,所以typeof x
报告其对象。但为什么地球上typeof function
报告正确! ? 好问题。 使用时请格外小心typeof
X是在全局范围内定义的数组。所以,当你这样做的console.log(x),则能够看到
['value']
同时,请参阅here有关JavaScript的数据类型,它说的细节,
数组定期对象进行有整数键属性和“长度”属性之间的特定关系
因此,类型返回为对象是正确的并且与预期的一样。
没有 “阵列” 式的JavaScript
typeof ['1'];//object
typeof {};//object
typeof null;//object
其他经常使用的值类型:
number,string,undefined,boolean,function
当你初始化你的 'X'? – Alteyss
因为'数组'是类型'对象 ' – Rayon
可能重复[检查对象是数组吗?](http://stackoverflow.com/questions/4775722/check-if-object-is-array) – hjpotter92