zoukankan      html  css  js  c++  java
  • javascript准确判断各种数据类型

    javascript准确判断各种数据类型

    Object.prototype.toString.call() 方法

    判断基本数据类型

          const a = Object.prototype.toString.call(null)
          console.log(a) // [object Null]
          console.log(a === '[object Null]') //true
    
          Object.prototype.toString.call(undefined) // [object Undefined]
          Object.prototype.toString.call('abc') // [object String]
          Object.prototype.toString.call(123) // [object Number]
          Object.prototype.toString.call(true) // [object Boolean]
    

    判断原生引用类型

          // **函数类型**
          function fn() {}
          Object.prototype.toString.call(fn) // "[object Function]"
          // **日期类型**
          const date = new Date()
          Object.prototype.toString.call(date) // "[object Date]"
          // **数组类型**
          const arr = [1, 2, 3]
          Object.prototype.toString.call(arr) // "[object Array]"
          // **正则表达式**
          const reg = /[hbc]at/gi
          Object.prototype.toString.call(reg) // "[object RegExp]"
          // **自定义类型**
          function Person(name, age) {
            this.name = name
            this.age = age
          }
          const person = new Person('Rose', 18)
          // 准确判断person是Person类的实例,只能用instanceof 操作符来进行判断,如下所示:
          console.log(person instanceof Person) // true
    

    判断原生JSON对象

    const isJSON = window.JSON && Object.prototype.toString.call(JSON);
    console.log(isJSON);// 输出结果为”[object JSON]”说明JSON是原生的,否则不是;
    
  • 相关阅读:
    pet shop 案例(转)
    用我账号的哥们 别随意留言 谢谢 这个账号有特殊意义
    关于if else 和 switch 的区别 究竟哪个更快
    sql server 2008 保存表的设置
    shell编程
    敏捷项目管理
    日常起居六忌是什么?
    质量管理的几个陌生词汇
    阿里巴巴一名员工的辞职信
    什么是SaaS?
  • 原文地址:https://www.cnblogs.com/liaoing/p/14234632.html
Copyright © 2011-2022 走看看