typeof 和 instanceof

news/2025/4/2 2:24:42/

typeof 和 instanceof 都是 JavaScript 中用于检测数据类型的运算符,但它们的用途和实现方式不同。

typeof 运算符返回一个字符串,表示一个值的数据类型。它可以用于检测基本类型(如字符串、数字、布尔值、undefined、null、Symbol)和对象类型。例如:

typeof 'hello'; // 'string'
typeof 123; // 'number'
typeof true; // 'boolean'
typeof undefined; // 'undefined'
typeof null; // 'object'
typeof Symbol(); // 'symbol'
typeof {}; // 'object'
typeof []; // 'object'
typeof function() {}; // 'function'

需要注意的是,typeof null 返回的是 "object",这是一个历史遗留问题。

实际上,null 的类型应该是 null,而不是 "object"。这是因为 null 表示一个空值或者不存在的对象,而不是一个实际的对象。

需要注意的是,虽然 typeof null 返回 "object",但是 null 与其他对象类型是不同的,它没有任何属性和方法。因此,当我们需要检测一个变量是否为 null 时,最好使用全等运算符 ===,例如:

let myVariable = null;if (myVariable === null) {console.log('myVariable is null');
}

instanceof 运算符用于检测一个对象是否是某个类(或其子类)的实例。它的语法为 object instanceof class,其中 object 是要检测的对象,class 是要检测的类。例如:

const obj = {};
obj instanceof Object; // trueconst arr = [];
arr instanceof Object; // true
arr instanceof Array; // trueconst func = function() {};
func instanceof Object; // true
func instanceof Function; // true

需要注意的是,instanceof 运算符只能检测对象是否是某个类的实例不能用于检测基本类型的数据

综上所述,typeof 用于检测数据类型instanceof 用于检测对象的类别


http://www.ppmy.cn/news/92252.html

相关文章

Flex 布局,学会瞬间让你不再掉头发,让布局变的更简单

前言 Flex布局是CSS3中新增加的一种弹性布局模型,它可以用来实现常见的页面布局,例如:垂直居中、水平居中、等高列布局、底部固定、左右布局、上下布局、宽度自适应、响应式布局等。使用Flex布局可以取代float、position和display等传统布局…

OSPFv2协议

OSPF概念 OSPF是Open Shortest Path First的简称 OSPF是一种基于SPF算法的链路状态协议,同时OSPF也是一种内部网关协议。。 开放式最短路径优先OSPF(Open Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议(Interior Gateway Protocol)。 Router ID …

Deepin 23的最佳新功能和亮点

Deepin是一个基于Linux的操作系统,以其美观、简洁和易用的用户界面而闻名。Deepin 23是Deepin操作系统的最新版本,引入了许多令人兴奋的新功能和亮点,为用户提供了更好的体验和更多的功能。 本文将详细介绍Deepin 23的最佳新功能和亮点。 1…

真题详解(include)-软件设计(八十二)

真题详解(快速排序)-软件设计(八十一)https://blog.csdn.net/ke1ying/article/details/130806047 generalliza(泛化):泛化是一种继承关系,子类将继承基类所有行为,关系和通信&#…

地理坐标系和投影坐标系

1、地理坐标系:球面坐标系,例如经纬度 2、投影坐标系:基于横轴墨卡托、阿尔伯斯等积或罗宾森等地图投影的投影坐标系,这些地图投影 (以及其他多种地图投影模型)提供了各种机制将地球球面的地图投影到二维笛卡尔坐标平面上。也称平面直角坐标系 …

中国人民大学与加拿大女王大学金融硕士---助力那个默默创造“平凡之路”的你

读研是为了改变命运吗?是为了刷新学历吗?是为了积累人脉吗?可能每种原因都会戳中你,但是在众多诱因之下我们每个人其实都是在默默的创造着属于自己的平凡之路。与此同时,金融界的你肯定离不开中国人民大学与加拿大女王…

Python之并发编程二多进程理论

一、什么是进程 进程:正在进行的一个过程或者说一个任务。而负责执行任务则是cpu。 二、进程与程序的区别 程序仅仅只是一堆代码而已,而进程指的是程序的运行过程。 三、并发与并行 无论是并行还是并发,在用户看来都是’同时’运行的&am…

git操作流程

注意:origin表示远程仓库 0. 克隆项目: git clone https://gitee.com/ssxju/kaochang-admin.git git clone https://gitee.com/ssxju/kaochang-front.git 1. 建立自已的新分支(每天): git checkout -b kzwang_0422 2. 提交到自…