无论我们检查数组或对象的类型,在JavaScript中它总是打印对象。为什么会这样?
let arr=[1,3,4];
let obj={1:"44",num:44};
console.log(typeof(arr)) //object
console.log(typeof(obj)) //object
有没有办法将typeof(array)显示为array?
Array.isArray
来检查某个东西是否是一个数组。 - undefinedtypeof(val)=="object" && !Array.isArray(val)
这样给出两个条件? - undefinedinstanceof
或typeof
等操作符时,问问自己:你真的在乎吗?为什么不先看看对象是否具有你所需的属性(特征检测),而不是担心它是什么类型?这通常被称为“鸭子类型”,源自于短语“如果它走起来像鸭子,叫起来也像鸭子……”。- 引用自@T.J.Crowder的博客文章Nifty Snippets: Say what? - undefined