javascript 类型的判断

在平常写js代码,类型判断必不可少,那么我们常见有哪几种?看到了标题,先不看你会想到那些方法 ,常用呢些呢?那么今天我自己总结一些判断类型的判断,如有错,万望告知!

1:typeof 常用这种方法不错

console.log(typeof 123 === "number"); //true
console.log(typeof "type" === "string"); //true
console.log(typeof undefined === "undefined"); //true
console.log(typeof function(){} === "function"); //true
//可是这两个就无法判断 都是"object"  console.log(typeof {} === "object"); //true  console.log(typeof [] === "object"); //true //注意 用typeof 判断 null 或是 [] 无法通过console.log(typeof null === "null") 没有标准值比较因此无法通过 ===  typeof [] // "object" type null // "undefined" 或是"object" 总之不同浏览器判断 都有变化 ,奇葩的null

2: instanceof 来补充上面无法真正分辨出 数组 [] 与 json对象{} 。感觉instanceof 为了判断 [] {}而生的!

console.log([] instanceof Array)//true console.log({} instanceof Object)//true // 判断其他的就功力下降了 console.log(123 instanceof Number);//false
console.log("type" instanceof String);//false

 

3:toString.call() 这种方法不错 与 老祖宗方法 Object.prototype.toString.call()一样的 个人推荐用这种

 console.log(toString.call(123) === '[object Number]');//true
 console.log(toString.call('type') === '[object String]');//true
 console.log(toString.call(null) === '[object Null]');//true
 console.log(toString.call(undefined) === '[object Undefined]');//true
 console.log(toString.call(true) === '[object Boolean]');//true
 console.log(toString.call([]) === '[object Array]');//true
 console.log(toString.call({}) === '[object Object]');//true
 console.log(toString.call(function(){}) === '[object Function]');//true

 

4:constructor 构造函数的属性  用来判别对创建实例对象的函数的引用(个人觉得:认爹妈用的)

 

        var arr = [];
        var str = 'type';
        var num = 123;
        var boo = true;
        var fn = function () {};
        var obj = {};
       
console.log(arr.constructor == Array);//true
console.log(str.constructor == String);//true
console.log(num.constructor == Number);//true
console.log(boo.constructor == Boolean);//true
console.log(fn.constructor == Function);//true
console.log(obj.constructor == Object);//true

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值