宇阳 一直对网站开发领域很感兴趣,从小就希望有一个属于自己的网站,在17年时候成功进入站长圈,并通过各种自学,以及各种折腾,才有了你现在看到的这个网站
歌曲封面 未知作品

网站已运行 5 年 70 天 1 小时 11 分

Powered by Typecho & Sunny

2 online · 52 ms

Title

一篇文章搞懂instanceof方法

宇阳

·

Article
⚠️ 本文最后更新于2022年04月02日,已经过了726天没有更新,若内容或图片失效,请留言反馈

instanceof

instanceof的作用是判断对象的具体类型,返回的是一个布尔值。如果是指定类型返回 true,否则返回 false。

♾️ javascript 代码:
    let obj = {
      name: '刘宇阳'
    }

    let arr = ['刘', '宇', '阳'];

    console.log(obj instanceof Object); //true
    console.log(arr instanceof Array); //true


注意点

数组本质上也属于对象,所谓万物皆对象

♾️ javascript 代码:
    //obj是一个对象,但不是个数组所以返回false
    console.log(obj instanceof Array); //false
    //arr是一个数组,但也属于对象所以返回true
    console.log(arr instanceof Array); //true

    //对象=Object,数组=Object
    console.log(obj instanceof Object); //true
    console.log(arr instanceof Object); //true

由此可以得出结论,数组属于Array,也属于Object。而对象仅仅只是个对象。

所以遇到以下这种情况,需要筛选数组、对象必须先判断数组其次判断对象。

♾️ javascript 代码:
    let a = {};
    if (a instanceof Array) {
      console.log('代码一');
    } else if (a instanceof Object) {
      console.log('代码二'); //执行这句话
    }

因为如果先判断数组则不管是对象还是数组结果都是true
数组是Array,所以输出代码一

♾️ javascript 代码:
    let b = [];
    if (b instanceof Array) {
      console.log('代码一'); //执行这句话
    } else if (b instanceof Object) {
      console.log('代码二');
    }

数组也属于Object,所以还是输出代码一

♾️ javascript 代码:
    let c = [];
    if (c instanceof Object) {
      console.log('代码一'); //还是执行这句话
    } else if (c instanceof Array) {
      console.log('代码二');
    }
现在已有 0 条评论,0 人点赞
Comment
发表
搜 索 消 息 足 迹
你还不曾留言过..
你还不曾留下足迹..
博主