typeof 类型判断

简介: typeof 类型判断

typeof 可以返回的类型为:number、string、boolean、undefined、object、function

在 ECMA 中,除了 Number,String,null,undefined,Boolean,其它的实例都会归为 object。因此 typeof 对于检测对象就不靠谱了,不只是Array,javascript中的对象,包括 Date, String, Boolean, Number, Object, Function, Array, RegExp, Error 使用 typeof 只会返回 “object”。

typeof(undefined) // "undefined"
typeof(null) // "object"
typeof([1,2]) // "object"
typeof({a:1}) // "object"
typeof('123') // "string"
typeof(1) // "number"
typeof(true)  // "boolean"
typeof(Array) // "function"
typeof(() => {})  // typeof 箭头函数返回也是 "function"
typeof(typeof(null))   // "string"
typeof(typeof(undefined))  // "string"
typeof(undefined) === undefined // false
typeof(undefined) === "undefined" // true

而创建 Function 或者 Array 这些类型的实例的时候,其实都是基于 Object 实例进行的一种扩展。只是多了一些特有属性。判断一个对象是一个数组还是普通的Object可以使用 Array.isArray([]) 或 [] instanceof Array 的方法。然而这个方法会因为在跨 iframe 的情况下失效。最简单的办法是 Object.prototype.toString.call(array) 的方式。因为只有通过 Object 的原型的 toString 方法才能拿到每个实例的[class]内部属性。

arr = []
arr instanceof Array // instanceof判断方法
Array.prototype.isPrototypeOf(arr) // 原型链判断
Array.isArray(arr) // JS 数组方法Array中的isArray方法
目录
相关文章
|
缓存 JavaScript 前端开发
看完这篇文章,不再害怕Vue3的源码(二)
看完这篇文章,不再害怕Vue3的源码
|
JSON 前端开发 API
fetchEventSource源码解析
fetchEventSource源码解析
3109 1
|
JavaScript 前端开发 编译器
看完这篇文章,不再害怕Vue3的源码(一)
看完这篇文章,不再害怕Vue3的源码
|
7月前
|
存储 分布式计算 OLAP
百观科技基于阿里云 EMR 的数据湖实践分享
百观科技为应对海量复杂数据处理的算力与成本挑战,基于阿里云 EMR 构建数据湖。EMR 依托高可用的 OSS 存储、开箱即用的 Hadoop/Spark/Iceberg 等开源技术生态及弹性调度,实现数据接入、清洗、聚合与分析全流程。通过 DLF 与 Iceberg 的优化、阶梯式弹性调度(资源利用率提升至70%)及倚天 ARM 机型搭配 EMR Trino 方案,兼顾性能与成本,支撑数据分析需求,降低算力成本。
519 59
|
SQL 分布式计算 监控
Hadoop-20 Flume 采集数据双写至本地+HDFS中 监控目录变化 3个Agent MemoryChannel Source对比
Hadoop-20 Flume 采集数据双写至本地+HDFS中 监控目录变化 3个Agent MemoryChannel Source对比
206 3
|
JavaScript 前端开发 算法
虚拟 DOM 是什么?
【10月更文挑战第18天】虚拟 DOM 是前端框架中的一项重要技术,它通过抽象和优化 DOM 操作,为前端应用带来了更好的性能、开发效率和可维护性。
540 1
|
算法
[白话解析] 深入浅出一致性Hash原理
[白话解析] 深入浅出一致性Hash原理
|
机器学习/深度学习 弹性计算 算法
阿里云服务器ECS中长期成本节省计划简介,助你优化上云成本
在云计算时代,企业对于云资源的需求日益增长,如何在保障业务稳定运行的同时,有效控制成本,成为许多企业关注的焦点。阿里云针对这部分用户的需求推出了ECS中长期成本节省计划(Saving Plan),节省计划是一种折扣权益计划,可以抵扣按量付费实例(不含抢占式实例)的账单。相比包年包月实例、预留实例券+按量付费实例的组合,节省计划+按量付费实例的组合在使用上更加灵活。本文将详细介绍这一计划的核心优势、应用场景以及如何参与,助您轻松优化上云成本。
阿里云服务器ECS中长期成本节省计划简介,助你优化上云成本
|
存储 SQL Prometheus
【TiDB原理与实战详解】1、原理与基础优化~学不会? 不存在的!
TiDB 是一款开源的分布式关系型数据库,具备水平扩展、高可用性和强一致性等特点,适用于高并发、低延迟的大规模数据处理场景。其架构设计灵感源自 Google 的 Spanner 和 F1,并兼容 MySQL。TiDB 集群由 TiDB Server(无状态 SQL 层)、PD(元数据管理模块)和 TiKV Server(分布式存储层)组成,还包含 TiFlash(列存储引擎)以加速分析型查询。TiDB 支持分布式事务和多种事务模式,适用于 OLTP 和 HTAP 场景,如电商平台和金融系统。此外,TiDB 的部署要求包括高性能硬件配置和特定网络设置,以确保系统的稳定性和高效运行。
|
自然语言处理 前端开发 开发者
什么是基线和 x-height
什么是基线和 x-height
419 0