精华内容
下载资源
问答
  • typeof instanceof 区别

    2020-09-17 12:11:24
    JavaScript中 typeof instanceof 区别 这属于js基础知识,正因为太基础,所以很容易被忽略,导致项目中随处可以见的滥用。 一、typeof typeof 其实就是判断参数是什么类型的实例,就一个参数,用例:typeof a...

    JavaScript中 typeof 和 instanceof 区别

    这属于js基础知识,正因为太基础,所以很容易被忽略,导致项目中随处可以见的滥用。

    一、typeof

    typeof 其实就是判断参数是什么类型的实例,就一个参数,用例:typeof a。
    返回值:"number"、"string"、"boolean"、"object"、"function" 、 "undefined"。

    typeof 12; // number
    typeof 'gym'; // string
    typeof !!’0’; // boolean
    typeof new Function(); // function
    typeof something; // undefined

    这里扩展一下,用 typeof 判断变量是否存在:

    if(!type) return; //此时若type未定义,将报错:type is not defined
    
    if(typeof type === 'undefined') return; //此方法较严谨,能避免异常
    

    用 typeof 来判断引用类型:

    let arr = [1,2,3];
    let people = {name: 'gymMan'};
    let obj = null;
    
    typeof arr; // object
    typeof people; // object
    typeof obj; // object

    由此可看出 typeo f判断引用类型的数据返回都未object,无法做到精确判断,我们来总结一下:
    1.对于基本类型,除 null 以外,均可以返回正确的结果。
    2.对于引用类型,除 function 以外,一律返回 object 类型。
    3.对于 null ,返回 object 类型。
    4.对于 function 返回 function 类型。

    二、instanceof

    instanceof 是用来判断 a 是否为 b 的实例,表达式为:a instanceof b,如果 a 是 b 的实例,则返回 true,否则返回 false

    [] instanceof Array; //true
    [] instanceof Object; //true ,js中万物皆对象
    
    ({}) instanceof Object;//true
    new Date() instanceof Date;//true
    
    function Person(){};
    new Person() instanceof Person; // true
    new Person instanceof Object; // true
    
    //通过一个简单的继承来说明
    function Parent(){};
    function Child(){};
    function Other(){};
    
    Child.prototype = new Parent();
    let child = new Child();
    
    child instanceof Child; // true
    child instanceof Parent; // true
    child instanceof Object; // true
    child instanceof Other; // false

     

    展开全文
  • typeof和instanceof区别

    2020-07-08 17:16:40
    typeof用于判断js数据类型,返回值为 string、number、boolean、undefined、function、object 注意,typeof校验数组、对象、null都会返回object instanceof 是判断实例是否是构造函数的实例 使用方法,obj1 ...

    typeof用于判断js数据类型,返回值为

    string、number、boolean、undefined、function、object

    注意,typeof校验数组、对象、null都会返回object

     

    instanceof 是判断实例是否是构造函数的实例

    使用方法,obj1 instanceof obj2 

    它的判断根据原型链搜寻,在实例对象obj1的原型链上如果存在另一个对象obj2的原型属性,那么上边表达式返回 true

     

     

    例如:

    function func() {
        console.log(111);
    }
    
    console.log(func instanceof Function);  // true, func是function的实例
    console.log(func instanceof Object);  // true, 因为function本身也是Object的实例

    那如何区分是function而不是object呢?

    可以用实例的 __proto__.constructor 区分

    console.log(func.__proto__.constructor === Function);   // true
    console.log(func.__proto__.constructor === Object); // false

     

     

     

    展开全文
  • typeof instanceof区别

    2021-01-12 14:03:42
    示例: let a = 1 ...console.log(typeof a) console.log(typeof b) console.log(typeof c) console.log(typeof d) console.log(typeof e) console.log(typeof f) console.log(typeof g) 结果: i

    示例:

    let a = 1
    let b = 'ss'
    let c
    let d = null
    let e = true
    let f = {}
    let g = function () {
    
    }
    console.log(typeof a)
    console.log(typeof b)
    console.log(typeof c)
    console.log(typeof d)
    console.log(typeof e)
    console.log(typeof f)
    console.log(typeof g)
    

    结果:
    在这里插入图片描述
    instanceof的作用是前面的变量的__proto__和后面的变量的prototype是不是有交叉,具体参照下图
    在这里插入图片描述
    示例:

    function Foo() {
    
    }
    let a = new Foo()
    console.log(a instanceof Object)
    

    结果:
    在这里插入图片描述
    这个例子中的a.__proto__和Object.prototype是一致的,所以返回true
    在这里插入图片描述

    展开全文
  • typeof和instanceof区别

    2019-09-09 15:51:48
    typeof 1.typeof返回的是一个字符串 这个字符串表示了运算数的类型 2.typeof只有一个参数 instanceof: 1.instanceof 用于判断一个变量是否某个对象的实例, 2.instanceof有两个参数 3.instanceof 可以在继承关系中...

    typeof
    1.typeof返回的是一个字符串 这个字符串表示了运算数的类型
    2.typeof只有一个参数
    instanceof:
    1.instanceof 用于判断一个变量是否某个对象的实例,
    2.instanceof有两个参数
    3.instanceof 可以在继承关系中用来判断一个实例是否属于它的父类型。

    展开全文
  • typeof和instanceof都是用来确定变量的数据类型的。 typeof最适合用来判断一个变量是否为原始类型,即判断一个变量是否是String,Number,Boolean或者Undefined。如果值是对象或者null,则typeof返回object。 let ...
  • // typeof 示例代码: var a="张三"; var b=true; var c=10; var d; var e=null; var f=new Object(); alert(typeof a); //string alert(typeof b); //number alert(typeof c); //boolean alert(typeo
  • 这两个方法都可以用来判断变量类型区别:前者是判断这个变量是什么类型,后者是判断这个变量是不是某种类型,返回的是布尔值(1)typeoftypeof返回一个数据类型的字符串,而且都是小写的字符串,返回值有'number','...
  • typeof和instanceof区别

    2017-06-16 16:24:41
    typeof和instanceof区别typeof和instanceof都可以用来判断变量,它们的用法有很大区别typeof会返回一个变量的基本类型,只有以下几种:number,boolean,string,object,undefined,function;例:alert(typeof(1));...
  • typeof和instanceof

    2020-06-10 17:02:40
    前端面试题汇总之typeof和instanceof问题描述与答案答案解析typeofinstanceof 问题描述与答案 求下面表达式的结果 [typeof null, null instanceof Object] 答案 [“object”, false] 答案解析 这里有两个知识点...
  • js中typeof和instanceof用法区别

    千次阅读 2017-06-16 11:31:54
    js中typeof和instanceof用法区别 转自:http://blog.csdn.net/u014421556/article/details/52083215 typeof和instanceof区别 typeof和instanceof都可以用来判断变量,它们的用法有很大区别typeof会返回...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 43,322
精华内容 17,328
关键字:

typeof和instanceof的区别