有没有比typeof更好的方法来获取JS中变量的类型?当你这样做的时候,效果很好:

> typeof 1
"number"
> typeof "hello"
"string"

但当你try 时,它是无用的:

> typeof [1,2]
"object"
>r = new RegExp(/./)
/./
> typeof r
"function"

我知道有instanceof种,但这需要你事先知道类型.

> [1,2] instanceof Array
true
> r instanceof RegExp
true

有更好的办法吗?

推荐答案

安格斯·克罗尔最近就此写了一篇有趣的博客文章-

http://javascriptweblog.wordpress.com/2011/08/08/fixing-the-javascript-typeof-operator/

他分析了各种方法的优缺点,然后定义了一个新方法"toType"-

var toType = function(obj) {
  return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase()
}

Javascript相关问答推荐

二维数组,过滤并返回带有索引而不是值的新数组

如何在react-Router-dom 6中Forking 路由?

React redux状态未在React-Router库中呈现

如何使用JavaScript动态地将CSS应用于ToDo列表?

jQuery提交按钮重新加载页面,即使在WordPress中使用preventDefault()

将状态向下传递给映射的子元素

InDesign—创建一个独立的窗口,在文档中进行更正时保持打开状态

react—router v6:路由没有路径

Mongoose post hook在使用await保存时不返回Postman响应

如何添加绘图条形图图例单击角形事件

阿波罗返回的数据错误,但在网络判断器中是正确的

如何将多维数组插入到另一个多维数组中?

如何创建返回不带`new`关键字的实例的类

有条件重定向到移动子域

将异步回调转换为异步生成器模式

在验证和提交表单后使用useNavigate()进行react 重定向,使用带有加载器和操作的路由

为什么延迟在我的laravel项目中不起作用?

如何修复使用axios运行TSC index.ts时出现的错误?

用于测试其方法和构造函数的导出/导入类

自动滚动功能在当前图像左侧显示上一张图像的一部分