typeof和instanceof的区别

javascript有两个常见的类型运算符:typeof 和 instanceof。
通常他们的作用是不同的。

typeof
用于判断基本类型
基本类型总共有六种,它们分别是
number
boolean
string
function
object
undefined

原始类型
数值、字符串、布尔值分布返回 number、string、boolean

在这里插入图片描述

undefined
undefined 和没有用 var 声明的变量,用typeof 返回的是 undefined
在这里插入图片描述

在这里插入图片描述

这里y没有用var声明,直接使用就会报错,但是用typeof就不报错,而是返回undefined。

instanceof 运算符

instanceof 左操作数是一个类,右操作数是标识对象的类。如果左侧的对象是右侧类的实例,则返回true.而js中对象的类是通过初始化它们的构造函数来定义的。即instanceof的右操作数应当是一个函数。所有的对象都是object的实例。如果左操作数不是对象,则返回false,如果右操作数不是函数,则抛出typeError。

instanceof 运算符是用来测试一个对象是否在其原型链原型构造函数的属性。其语法是object instanceof constructor

instanceof 操作符用来比较两个操作数的构造函数。只有在比较自定义的对象时才有意义。 如果用来比较内置类型,将会和 typeof 操作符 一样用处不大。

instanceof 是判断变量是否为某个对象的实例,返回值为true或false。

在这里插入图片描述
typeof 对数组 [] 和对象 {} 的返回值都是Object,无法区分数组和对象,但是instanceof可以区分。

主要用来判断对象的关系,特别是自定义对象
在这里插入图片描述
运行结果为true

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值