前端面试系列-typeof 和instanceof 的实现原理(手写代码)

本文探讨JavaScript中的typeof操作符和instanceof操作符。typeof主要用于判断数据类型,但对于Object派生类型判断不准确。instanceof则用于检测实例是否属于某种类型,其原理是检查原型链上是否存在右边类型的prototype。文章详细解析了instanceof的工作机制,并介绍了JavaScript的原型链概念,包括proto和prototype属性以及原型链的查找过程。
摘要由CSDN通过智能技术生成

一、typeof

typeof 操作符的唯一目的就是检查数据类型,我们可以利用 typeof 来判断number, string, boolean, function, undefined, symbol

var str="string";
console.log(typeof str); //string
var num=1;
console.log(typeof num); //number
var bn=false;
console.log(typeof bn); //boolean
var a;
console.log(typeof a); //undfined
var bigint = BigInt("9007199254740995");
console.log(typeof bigint); //bigint
var syboml = Symbol("syboml");
console.log(typeof syboml); //syboml  
 var fn = function(){};
 console.log(typeof fn); //function  

如果我们希望检查任何从 Object 派生出来的结构类型,使用 typeof 是不起作用的,都会是"object"。检查 Object 种类的合适方式是使用 instanceof 关键字。但即使这样也存在误差。后面instanceof部分进行叙述。

var obj = null;
console.log(typeof obj); //object
var doc = document;
console.log(typeof doc);//object
var arr = [];
console.log(typeof arr); //object
var map = new Map();
console
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值