【问题标题】:What methods do you know for the geting data type in the javascript? [duplicate]javascript中获取数据类型的方法你知道吗? [复制]
【发布时间】:2019-02-03 13:34:30
【问题描述】:

例如我有一段代码:

({}).toString.call(new Date()); // "[object Date]"

任何人都知道,另一种方法如何检查类型? (我想只接收date 没有对象的类型)

【问题讨论】:

  • 你试过typeof吗?
  • @LuisfelipeDejesusMunoz ,typeof 只返回对象,我需要一个date
  • 如果你已经知道它是object类型,你可以使用instanceof或者查看构造函数。
  • @user268396 你说的不对,instanceof知道类型就可以用,这种情况下最好用variable.constructor.name
  • 请记住,JavaScript 是非常动态的,因此您找到的任何解决方案都可能不是 100% 可靠的,这意味着仅仅因为某些东西返回一个特定的值,它可能不是您所期望的。例如:({}).toString.call({[Symbol.toStringTag]: 'Date'}).

标签: javascript date object types


【解决方案1】:

按照您要求的方式检查类型的最佳方法是使用您已经发布的方法。不过你可以让它更容易一些。

function type(value) {
  const tag = Object.prototype.toString.call(value);
  return tag.slice(8, -1);
}

console.log(type(new Date()));
console.log(type(5));
console.log(type(function() {}));

【讨论】:

  • 这是一个很好的方法,但函数不应该被称为“类型”。按照惯例,以大写字母开头的函数名称表示构造函数,Type 与构造函数名称是完全不同的概念(更类似于“类”,但也应该避免使用该名称)。
猜你喜欢
  • 2011-10-08
  • 2011-02-10
  • 2012-02-14
  • 1970-01-01
  • 1970-01-01
  • 2016-03-23
  • 1970-01-01
  • 2013-02-03
  • 1970-01-01
相关资源
最近更新 更多