JS判断对象类型方法_typeof怎么用_instanceof怎么用_constructor怎么用_Object.prototype.toString()怎么用

js 同时被 3 个专栏收录
10 篇文章 0 订阅
10 篇文章 0 订阅
9 篇文章 0 订阅

JS判断对象类型方法

typeof

typeof 方法 右边要跟一个 数据 就能返回这个数据的数据类型 注意typeof 不是方法 不需要加()  

返回的数据类型有   string(字符串) number(数字) object(对象)array(数组) 【主注意 数组会被返回成 object】   boolean(布尔)null(空)undefined(未定义)

var x = []
var y = {}
var z =null
var a 

console.log( typeof 'aaa')    //  string
console.log( typeof 123)      //  number
console.log( typeof true)     //  boolean
console.log( typeof a)        //  undefined
console.log( typeof b)        //  undefined   未声明也是  undefined 
console.log( typeof x)        //  object      数组也是对象 但是用typeof 不能检测出是数组
console.log( typeof y)        //  object
console.log( typeof z)        //  object      null是空的对象  用typeof检测也是对象

instanceof

instanceof 用来判断  instanceof  的 数据 是否 为   instanceof 的类型  返回一个布尔值  同样不用加()  但是instanceof只能用来检测对象

var x = []
var y = {}
var z =null
var a = 'aaa'
			
console.log(x instanceof Object)     //true   数组也是对象
console.log(x instanceof Array)      //true  
console.log(y instanceof Object)     //true   
console.log(y instanceof Array)      //false   但数组不一定是对象
console.log(z instanceof Object)     //false   用instanceof检测空对象 也是检测不出来的
console.log(a instanceof String)     //false   instanceof只能用来判断对象 对字符串无效

constructor

constructor   是通过原型链进行查找的       可以用来查找对象和普通数据   相比于 instanceof typeof 会更加精准

var x = []
var y = {}
var z = Date()
var a = 'aaa'
			
console.log(x.constructor==Object)    //false   在这里 数组并不被识别成对象
console.log(x.constructor==Array)    //true
console.log(y.constructor==Object)    //true
console.log(a.constructor==String)    //true    字符串可以正常被识别
console.log(z.constructor==Object)    //false   时间对象也不被识别成对象
console.log(z.constructor==Date)     // true    
			

Object.prototype.toString()

Object.prototype.toString()    是Object原型的方法  相比于以上三个 更加精准

var x = []
var y = {}
var z = new Date()
var a = 'aaa'
			
console.log(Object.prototype.toString.call(x))    //[object Array]
console.log(Object.prototype.toString.call(y))    //[object Object]
console.log(Object.prototype.toString.call(z))    //[object Date]
console.log(Object.prototype.toString.call(a))    //[object String]

 

 

  • 12
    点赞
  • 18
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值