笔记整理:判断变量类型的方法

笔记整理:判断变量类型的方法

  1. typeof
    typeof 返回对象的类型,缺点是像Array、Math、Date、Reg、null等这些对象也全部返回object;
    typeof 1 //number
    typeof “” //string
    typeof undefined //undefined
    typeof [] //object
    typeof null //object

  2. instanceof 判断变量属于哪种类型,缺点是无法识别原始类型;
    (new Date()) instanceof Date //true
    [] instanceof Array //true
    /\d+/ instanceof RegExp //true
    “” instanceof String //false

  3. constructor 通过变量点出constructor.name,constructor.name返回变量的具体类型,缺点是无法识别null和undefined,null和undefined没有构造函数;另外有原型时constructor.name失效;多重继承时constructor.name失效;
    “2”.constructor.name //String
    [].constructor.name //Array
    new Date().constructor.name //Date
    null.constructor.name //TypeError

    function father(){}
    father.prototype={
    name:“xx”,
    value:function(){}
    }
    new father().constructor.name //Object

    function a(){}
    function b(){}
    b.prototype=new a()// b继承a;
    let c=new b();
    c.constructor=a; // true
    c.constructor.name; //“a”
    c.constructor
    =b; //false

  4. Object.prototype.toString.call(obj) 检测对象的内部属性,无法识别自定义对象的具体类型;
    Object.prototype.toString.call(new Date()) //[object Date]
    console.log(Object.prototype.toString.call(/+d/)); //[object RegExp]
    Object.prototype.toString.call(""); //[object String]
    Object.prototype.toString.call(function(){}) //[object Function]

    function getData(){}
    Object.prototype.toString.call(new getData()); //[object Object]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值