最近开始在整理ES6/ES7/ES8/ES9的知识点(已经上传到 我的博客 上),碰到一些知识点是自己已经忘记(用得少的知识点),于是也重新复习了一遍。

这篇文章要复习的 instanceof 是我在整理过程中遇到的,那就整理下来吧,不然容易忘记。

要是哪里写得不妥,欢迎各位大佬指点。

1.定义

instanceof运算符用于测试构造函数的prototype属性是否出现在对象的原型链中的任何位置。 —— MDN

简单理解为:instanceof可以检测一个实例是否属于某种类型。

比如:

还可以在继承关系中用来判断一个实例是否属于它的父类型。

比如:

2.使用方法

语法为: object instanceof constructor。

  • object : 需要测试的函数
  • constructor : 构造函数

即:用instanceof运算符来检测constructor.prototype 是否存在参数object的原型链。

注意

  1. a instanceof F 返回 true 以后,不一定永远都都返回为true,F.prototype属性的值有可能会改变。
  2. 原表达式a的值也会改变,比如 a.__proto__ = {}之后,a instanceof F就会返回false了。

检测对象是不是特定构造函数的实例:

3.实现instanceof

4.instanceof 与 typeof 对比

相同

instanceof和typeof都能用来判断一个变量的类型。

区别

instanceof 只能用来判断对象、函数和数组,不能用来判断字符串和数字等:

typeof :用于判断一个表达式的原始值,返回一个字符串。

一般返回结果有:

  • number
  • boolean
  • string
  • function(函数)
  • object(NULL,数组,对象)
  • undefined。

判断变量是否存在

不能使用:

原因是如果变量未定义,就会报未定义的错,而应该使用:

5.参考资料

  1. MDN instanceof
  2. IBM instanceof
  3. js中typeof和instanceof用法区别

instanceof用法_「JS很简单」JavaScript 基础之 instanceof操作符相关推荐

  1. hssfworkbook 设置自适应宽度_「CSS很简单」CSS 实现宽高等比自适应容器

    在最近开发移动端页面,遇到这么一个情况:当页面宽度 100% 时,高度为宽度一半,并随手机宽度变化依然是一半. 于是我们就需要实现一个宽度自适应,高度为宽度一半的容器. 这里先以高度为宽度一半为例,也 ...

  2. 比「你很美」还好的 3 个字

    比「你很美」还好的 3 个字,你们觉得呢 public static const ↓↓↓

  3. 用python做简单的题目_「每日一练」巧用python做小学的数学题

    原标题:「每日一练」巧用python做小学的数学题 很多的小学问题其实已经比较复杂了,我们运用传统的算法,可能会比较难以理解,这里我们可以巧用Python来完成一些小学题目的计算! 下边我们就一起来看 ...

  4. oracle split函数用法_「干货」Python字符串中的split方法

    前面的文章我们有简单的介绍过什么是字符串.Python字符串的输入方式.Python字符串的拼接方法等今天我们主要分享一下Python字符串中split方法! Python字符串中的方法有很多种,其中 ...

  5. 逆向查找_「函数说12」数据逆向查找很复杂?match+index让你轻松搞定

    EXCEL进阶课堂 · 函数说 持续更新,这是第12篇教程. 欢迎各位小伙伴转发.点赞.讨论,更欢迎私信获取练习素材,刻意练习才能学有收获. 第12讲:如何轻松的实现数据逆向查找--match+ind ...

  6. 背景宽高随文本变化_「只要功夫深 不用关键帧」之文本图层小技巧

    「只要功夫深 不用关键帧」将不定期更新一些AE表达式和脚本的奇技淫巧,希望能给大家带来一些启发. 上周有朋友遇到这么个问题: 对一段文字,不管文字长度如何变化,想让背景到文字的边距始终保持不变,在 A ...

  7. python断点调试_「Python调试器」,快速定位各种疑难杂症!!!

    在很多的编辑器其实都带着「调试程序」的功能,比如写 c/c++ 的 codeblocks,写 Python 的 pycharm,这种图形界面的使用和显示都相当友好,简单方便易学,这个不是我这篇文章要讲 ...

  8. layui 表格数据源_「WPS办公助手」表格数据录入太慢?这个好用的技巧,轻松帮你搞定...

    日常使用表格时,常常会需要「数据查找录入」,虽然看似简单,但操作起来并不方便. 比如说下方表格中,右侧的信息对应表,需要在左侧的人员信息表查找并录入对应的数据,要怎么做呢? 肯定会有人觉得:就这么点数 ...

  9. python中字符型用什么表示_「小白学Python」Python中最常用的数据类型:字符串

    Python中有6个标准数据类型,分别是:Number(数值).String(字符串).List(列表).Tuple(元组).Sets(集合).Dictionary(字典). 其中,String(字符 ...

最新文章

  1. 《Microsoft Sql server 2008 Internals》读书笔记--第九章Plan Caching and Recompilation(10)
  2. 算力觉醒后,智慧距离勃发就只差一个想法
  3. 服务器,工作站和终端机
  4. python自动创建目录_python自动目录环境
  5. sourceInsight4 破解笔记(完美破解)
  6. Android中SQLiteDatabase操作【附源码】
  7. visualsvn php,VisualSVN 手动记录访问日志
  8. Spark入门必读:核心概念介绍及常用RDD操作
  9. sshd被攻击的自动防御方法v2
  10. ssis sql_使用sp_help_revlogin和SSIS传输登录任务将SQL登录名传输到AG的辅助副本
  11. 郁闷的五角大楼:100亿美元“JEDI”云服务采购,却遭受云厂商和国会的双重抗议...
  12. @RequestBody 接收数组、List 参数、@Deprecated 标记废弃方法
  13. shell编程(精华总结版)
  14. jquery的语法结构包括哪几部分?_食品包装设计包括哪几个基本部分?
  15. 一款度盘高速下载工具
  16. 第四章: 元语言抽象
  17. 十进制进制法_十进制转换成二进制及二进制转换成十进制是如何转换的?
  18. STM32串口通信程序模拟超市打印机工作-使用接收中断、空闲中断、校验中断
  19. 小记 xian80 坐标转换 wgs84
  20. csdn博客文章设置为隐私模式发布之后看不到的问题

热门文章

  1. 理解RTMP、HttpFlv和HLS的正确姿势
  2. WebRtc音视频实时通信--基本术语
  3. golang 结构体 slice 排序
  4. 大剑无锋之简单介绍一下虚拟内存【面试推荐】
  5. 日跑几十万作业,唯品会HDFS是如何优化的
  6. leetcode 455. 分发饼干(Java版)
  7. easyui树形菜单生成算法,及在关系型数据库中的存储方式(非递归,高效算法)
  8. 【Docker】docker attach 卡住的问题
  9. 【JQuery】JQuery学习笔记
  10. 小师妹学JavaIO之:NIO中Channel的妙用