探讨JS中的typeof、constructor、instanceof方法

		 //基本类型:string、Boolean、number、undefined、null
           //引用类型:function、Date、Object、Array
           var arr=new Array("1","2","3","4","5");
           var arr1=[1,2];
            var str=String("123");
            var str1=new String("22");
            var fun=function(){};
            var fun1=new Function();
            var date=new Date();
            var obj={};
            var obj1=new Object();
            var num=Number(12);
            var num1=new Number(123);
            var boo=Boolean(true);
            var boo1=new Boolean(false);
            var un;

1.typeof

!          console.log(typeof(null));//object
!          console.log(typeof(arr));//object
!          console.log(typeof(arr1));//object
            console.log(typeof(str));//string
            console.log(typeof(str1));//object
            console.log(typeof(fun));//function
            console.log(typeof(fun1));//function
            console.log(typeof(date));//object
            console.log(typeof(obj));//object
            console.log(typeof(obj1));//object
            console.log(typeof(num));//number
            console.log(typeof(num1));//object
            console.log(typeof(boo));//boolean
            console.log(typeof(boo1));//object
            console.log(typeof(un));//undefined

2.instanceof

           console.log(null instanceof null);//Uncaught TypeError: Right-hand side of 'instanceof' is not an object
            console.log(null instanceof Object);//false
            console.log(arr instanceof Array);//ture
            console.log(arr1 instanceof Array);//true
            console.log(str instanceof String);//false
            console.log(str1 instanceof String);//true
            console.log(fun instanceof Function);//true
            console.log(fun1 instanceof Function);//true
            console.log(date instanceof Date);//true
            console.log(obj instanceof Object);//true
            console.log(obj1 instanceof Object);//true
            console.log(num instanceof Number);//false
            console.log(num1 instanceof Number);//true
            console.log(boo instanceof Boolean);//false
            console.log(boo1 instanceof Boolean);//true
            console.log(un instanceof undefined);//Uncaught TypeError: Right-hand side of 'instanceof' is not an object

3.constructor

            console.log(arr.constructor.name);
            console.log(arr1.constructor.name);
            console.log(str.constructor.name);
            console.log(str1.constructor.name);
            console.log(fun.constructor.name);
            console.log(fun1.constructor.name);
            console.log(date.constructor.name);
            console.log(obj.constructor.name);
            console.log(obj1.constructor.name);
            console.log(num.constructor.name);
            console.log(num1.constructor.name);
            console.log(boo.constructor.name);
            console.log(boo1.constructor.name);
            console.log(un.constructor);//Uncaught TypeError: Cannot read property 'constructor' of undefined
            console.log(null.constructor);//Uncaught TypeError: Cannot read property 'constructor' of null

在这里插入图片描述
4.Object.prototype.toString.call() 最精确的方法

		    console.log(Object.prototype.toString.call(null));
            console.log(Object.prototype.toString.call(arr));
            console.log(Object.prototype.toString.call(arr1));
            console.log(Object.prototype.toString.call(str));
            console.log(Object.prototype.toString.call(str1));
            console.log(Object.prototype.toString.call(fun));
            console.log(Object.prototype.toString.call(fun1));
            console.log(Object.prototype.toString.call(date));
            console.log(Object.prototype.toString.call(obj));
            console.log(Object.prototype.toString.call(obj1));
            console.log(Object.prototype.toString.call(num));
            console.log(Object.prototype.toString.call(num1));
            console.log(Object.prototype.toString.call(boo));
            console.log(Object.prototype.toString.call(boo1));
            console.log(Object.prototype.toString.call(un));

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值