Javascript类型检测

js在对类型检测时大概有五种方法:

1、typeof

2、instanceof

3、obj.prototype.toString

4、constructor

5、duck type

第一种 typeof  :

 typeof 100    "number"

 typeof true     "boolean"

 typeof function     "function"

 typeof (undefined)       "undefined"

 typeof new object()       "object"

 typeof [1,2]     "object"

 typeof NaN     "number"

 typeof null       "object"(特别记忆)

第二种 instanceof  :

instanceof 一般喜欢使用在原型链里   obj  instanceof Object  返回值为 false或者true

function person(){ }

function student(){ }

student.prototype=new person()

var bosn=new student()

bosn instanceof student  (输出为true)

bosn instanceof person   (输出为true)

var one = nes person()

one instanceof person     (输出为true)

one instanceof student    (输出为false)

第三种 Object.prototype.toString

Object.prototype.toString.apply([1,2])    //"[object Array]"
Object.prototype.toString.apply('str')    //"[object String]"
Object.prototype.toString.apply(1)        //"[object Number]"
Object.prototype.toString.apply(null)     //"[object Null]"
Object.prototype.toString.apply()         //"[object Undefined]"
Object.prototype.toString.apply(function(){})      //"[object Function]"
Object.prototype.toString.apply(true)     //"[object Boolean]"
Object.prototype.toString.apply(new Object())     //"[object Object]"

前三种较为常用

第四种 constructor

  因为constructor可以改变,所以使用时要小心

第五种 duck type

  鸭子类型


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值