17、js - 面试 - instanceof

<script>

    function Person(name, age) {
        this.name = name;
        this.age = age;
    }

    const p1 = new Person('vite', 14);
    console.log(p1);

    // typeof:判断基本数据类型,无法判断引用数据类型
    console.log(typeof "str"); // 'string'
    console.log(typeof 123); // 'number'
    console.log(typeof []); // 'object'
    console.log(typeof null); // 'object'
    console.log(typeof {}); // 'object'

    // instanceof:精确判断引用数据类型
    // instanceof原理:判断构造函数的原型对象是否在实例对象的原型链上
    console.log(p1);
    console.log(p1 instanceof Person); // true
    console.log(p1 instanceof Object); // true

    console.log(new Date() instanceof Date); // true
    console.log(new Date() instanceof Object); // true

    console.log([] instanceof Array); // true
    console.log([] instanceof Object); // true
    

</script>

猜你喜欢

转载自blog.csdn.net/EchoLiner/article/details/131067729