侧边栏壁纸
博主头像
suringYu

走走停停

  • 累计撰写 35 篇文章
  • 累计创建 11 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

typeof和instanceof区别

suringYu
2022-10-17 / 0 评论 / 0 点赞 / 25 阅读 / 348 字

语法

  • typeof
typeof obj
  • instanceof
obj1 instanceof obj1

返回值

  • typeof
类型 结果
Undefined "undefined"
Null "object"
Boolean "boolean"
Number "number"
BigInt "bigint"
String "string"
Symbol "symbol"
Function(在 ECMA-262 中实现 [[Call]];classes也是函数) "function"
其他任何对象 "object"

// JavaScript 诞生以来便如此
typeof null === “object”;

  • instanceof

boolean

区别

  • typeof是用来检测是否为基本数据类型,但是在检测引用数据类型的时候作用不大,因为都会返回object类型
alert(typeof true);  //提示为"boolean"

alert(typeof user);  //自定义对象,提示为"object"
  • instanceof是用来知道它是什么类型的对象
alert(person instanceof Object); // 变量 person 是 Object 吗?

alert(colors instanceof Array); // 变量 colors 是 Array 吗?

alert(pattern instanceof RegExp); // 变量 pattern 是 RegExp 吗?

补充

  • instanceof 字符串 都会返回false

原因:首先使用typeof查看字符串数据类型,返回string,非String,而instanceof 只有在左侧是右侧类的对象时才会返回ture

  • 所有引用类型的值都是 Object 的实例,在检测一个引用类型值和 Object 构造函数时,instanceof 操作符始终会返回 true。当然,如果使用 instanceof 操作符检测基本类型的值,则该操作符始终会返回 false,因为基本类型不是对象。
0

评论区