前端笔记之——typeof 和 instanceof

首先说一下JS的六大基本数据类型:undefined null boolean number string object(Array也是对象)

当然 ES6 标准又新添了一个类型:Symbols,这里不谈。

对于undefined boolean number string 这四种类型的判断,都可以使用 typeof 解决,如下

    var a;
    console.log(typeof a);   //undefined

    var a = true;
    console.log(typeof a);   //boolean

    var a = 119;
    console.log(typeof a);   //number
    
    var a = "Jams";
    console.log(typeof a);   //string

 

可以看到,使用 typeof 能够有效的判断出这四种数据类型

并且 typeof 还可以判断 function 函数类型,如自定义函数 或者 Date,eval 等已定义好的函数.

    var a = function(){};     
    console.log(typeof a);      //function
    console.log(typeof Date);   //function
    console.log(typeof eval);   //function

而对于null object 还有数组对象就无法精确判断,只能显示object

    var a = null;
    console.log(typeof(a));   //object
    var a = document;
    console.log(typeof a);    //object
    var a = ['string','number','NaN']   
    console.log(typeof a);    //object

对于 null、document 我们可以使用 === 判断,既判断类型又判断内容

    var a = null;
    console.log(a === null);

    var a = document;
    console.log(a === document);    

那我们应该如何去精确判断数组对象类型呢?

接下来就轮到 instanceof 登场了!

instanceof 语法:b instanceof A

instanceof 解释:判断 b 是否是 A 的实例或者 A 的子类的实例

    var a = ['string','number','NaN']   
    console.log(a instanceof Array);    

a 是 Array 的实例,故结果为 true.

再举个例子:

    function Foo(){}

    var f1 = new Foo();

    console.log(f1 instanceof Foo);

    console.log(f1 instanceof Object);

 结果是 true  true.

Object是所有对象的基类。


转载请注明出处。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值