卖坚果的怪叔叔 卖坚果的怪叔叔
  • 首页
  • 生活
  • 技术
  • 记录
  • 工具箱
  • 关于我
首页 › 技术 › instanceof和typeof的区别

instanceof和typeof的区别

坚果大叔
2023-09-26 17:20:33技术阅读 5,119

typeof

typeof和instanceof都是用来判断值或对象的类型的操作符或运算符。

typeof 123; // "number"
typeof "abc"; // "string"
typeof true; // "boolean"
typeof undefined; // "undefined"
typeof {}; // "object"
typeof []; // "object"
typeof function(){}(); // "function"

可以看到,对于数字、字符串、布尔值、未定义和空对象,typeof 都返回了相应的类型字符串。但是对于数组和函数,它的返回值都是 "object",因为它们的数据类型都是对象。需要注意的是,如果是一个未声明的变量,typeof 会返回 "undefined"。另外值得注意的是typeof Null 返回的也是 『object』

typeof的原理是通过检查值的内部表示来确定其数据类型。它返回一个字符串,表示值的数据类型。对于基本数据类型(如number、string、boolean),typeof可以直接返回相应的字符串。对于对象类型(如object、function),typeof返回"object",无法区分具体的对象类型。

instanceof

instanceof的原理是通过检查对象的原型链来确定其是否是某个类或构造函数的实例。每个对象都有一个内部属性[[Prototype]],指向其原型对象。instanceof会沿着对象的原型链向上查找,直到找到指定的类或构造函数的原型对象,如果找到则返回true,否则返回false。

var arr = [1, 2, 3];
arr instanceof Array; // true
arr instanceof Object; // true
arr instanceof Number; // false
arr instanceof String; // false
arr instanceof Function; // false

需要注意的是,instanceof 运算符只能判断对象是否是某个构造函数的实例,而不能判断对象是否具有某个原型链上的属性或方法。

区别:

typeof用于确定一个值的数据类型,而instanceof用于检查一个对象是否是某个类或构造函数的实例。
typeof返回一个字符串,表示值的数据类型,而instanceof返回一个布尔值,表示对象是否是某个类或构造函数的实例。

应用场景:

typeof常用于判断一个值的数据类型,可以用于条件判断、类型转换等操作。例如,可以使用typeof来判断一个变量是否为数字类型,从而进行相应的处理。

instanceof常用于判断一个对象是否是某个类或构造函数的实例,可以用于实现继承、多态等面向对象的特性。例如,可以使用instanceof来判断一个对象是否是某个类的实例,从而执行相应的方法或操作。

赞赏 赞(6)
嗖嗖嗖
上一篇
一键解决VsCode官网下载慢的问题
下一篇
在小程序中查看

这是个😊,挣点服务器费用😜

评论已关闭

热门文章
七月已经到中旬了呀
前端常用Git命令
ES6入门之数组的扩展
快过年了!你们放假通知下来了吗?
Css要点
element-ui 控制台 『 Prop being mutated: "placement" 』的报错~
专题标签
agent (1) CSS (15) dom (1) Es6入门系列 (14) Git (3) html (1) iview (1) JavaScript (9) js (4) Lif (1) Node (4) pyecharts (1) Python (10) ref (1) scriptable (1) Skill (1) vsCode (1) vue (4) wordpress (2) 三月 (1) 上海 (1) 假期 (1) 其他分享 (3) 前端两三问 (15) 古镇 (1) 外滩 (1) 对象 (1) 小程序 (5) 年度总结 (6) 年终总结 (1) 微信机器人 (4) 打字机 (1) 技术 (1) 日常问题 (8) 日常问题记录 (1) 春天 (2) 服务器 (2) 海族馆 (1) 生活 (8) 网上国网 (1) 记录 (3) 通勤 (1) 重学JavaScript (11) 面试题 (10) 🌸 (1)
什么是Agent?
2026-08-15 23:49:12
193 0 1
什么是 Skill?
2026-08-12 21:32:42
236 1 0
失业在家,我给小朋友做了一个练字小程序!
2026-08-07 16:21:52
455 8 1
上线8年,15万用户的小程序,一共赚了多少钱?
2026-05-30 18:01:24
4,581 4 0
6
  • 6
博主

一位佛系的前端开发者,略通摄影,乐于尝试新事物,热衷于美食。

友链
故事胶片
公众号
坚果大叔 执行上下文 卖坚果的怪叔叔 Dacking
Copyright © 2017-2026 卖坚果的怪叔叔

开往-友链接力

萌ICP备20230818号

苏ICP备18048410号-3
  • 首页
  • 生活
  • 技术
  • 记录
  • 工具箱
  • 关于我
# CSS # # JavaScript # # vue # # 微信 # # 生活 #
坚果大叔
345
文章
170
评论
431
喜欢