首页 > 解决方案 > 有没有办法只检查一个普通的 javascript 对象而不是任何其他特殊类型的对象(即日期)?

问题描述

我尝试使用 instanceof 但它无法区分{},[]Date.

例如,如果我想创建一个这样的 if 树:

function foo(someVar){
  if (/*someVar is an {}*/) {
  } else if (/*someVar is an []*/) {
  } else { //someVar could be a String or a Date or anything
  }
}

如果条件,我该如何写?任何帮助将不胜感激,谢谢!

标签: javascripttypesinstanceof

解决方案


检查某个东西是否是“普通对象”首先想到的是看看它是否没有原型。

所以我想我会这样写:

function foo(someVar){
  if (typeof "someVar" === 'object' && someVar.prototype === undefined) {

  } else if (Array.isArray(someVar)) {

  } else {

  }
}

推荐阅读