美文网首页
数据类型

数据类型

作者: 考拉程序媛 | 来源:发表于2020-05-05 21:23 被阅读0次
    JavaScript 有几种类型
    
    基本数据类型:undefined、null、boolean、number、string、symbol(es6的新数据类型)
    引用数据类型:object、array、function(统称为object)
    数据类型检测
    
    typeof 对于基本数据类型来说,除了 null 都可以显示正确的类型,typeof 对于对象来说,除了函数都会显示 objec
    
    typeof 5 // 'number'
    typeof '5' // 'string'
    typeof undefined // 'undefined'
    typeof false// 'boolean'
    typeof Symbol() // 'symbol'
    console.log(typeof null)  //object
    console.log(typeof NaN)   //number
    
    typeof [] // 'object'
    typeof {} // 'object'
    typeof console.log // 'function'
    
    instanceof通过原型链来判断数据类型的
    
    p1 = new Person()
    p1 instanceof Person // true
    
    Object.prototype.toString.call()
    
    Object.prototype.toString.call()可以检测所有的数据类型,算是一个比较完美的方法了。
    
    var obj={}
    var arr=[]
    console.log(Object.prototype.toString.call(obj))    //[object Object]
    console.log(Object.prototype.toString.call(arr))    //[object Array]
    
    
    一、typeof  检测
    typeof 是一个一元运算符,语法:typeof(运算数),运算数可以是任意类型。它的返回值是一个字符串,该字符串说明运算数的类型。
    // var arr = { name:"john"}; // object
      // var arr = ["语文","数学"]; // object
      // function Person() {};  // typeof(Person) => function
      // var arr = '我是字符串' ; // string
      // var arr = 66 ;    // number
      // var arr = true ;   // boolean
      // var arr = new Person(); // object
      // var arr = undefined;  // undefined
      // var arr = null;   // object
      // var arr = /^\d{5,20}$/; // object
      // console.log( typeof(arr) );
    二、instanceof  检测
    instanceof 检测某个对象是不是另一个对象的实例,可以在继承关系中用来判断一个实例是否属于它的父类型。
    // var arr = '我是字符串' ;     // console.log( arr instanceof String ) => false
        // var arr = 66 ;         // console.log( arr instanceof Number ) =>false
        // var arr = true ;        // console.log( arr instanceof Boolean ) =>false
        // var arr = ["语文","数学"];   // console.log( arr instanceof Array ) =>true
        // var arr = { name:"john"};    // console.log( arr instanceof Object ) =>true
        // var arr = function Person(){}; //console.log(arr instanceof Function)=>true
        // var arr = undefined;      // console.log(arr instanceof Object)=>false
        // var arr = null;        // console.log(arr instanceof Object)=>false
        // var arr = /^\d{5,20}$/;    // console.log(arr instanceof RegExp)=>true
    三、Object.prototype.toString.call  检测 
    
    使用Object.prototype上的原生toString()方法判断数据类型,使用方法如下:Object.prototype.toString.call(value)
    
    // var arr = '我是字符串' ;   //[object String]
        // var arr = 66 ;        //[object Number]
        // var arr = true ;       //[object Boolean]
        // var arr = ["语文","数学"];  //[object Array]
        // var arr = { name:"john"};  //[object Object]
        // var arr = function Person(){}; //[object Function]
        // var arr = undefined;      //[object Undefined]
        // var arr = null;         //[object Null]
        // var arr = /^\d{5,20}$/;     //[object RegExp]
        // console.log( Object.prototype.toString.call(arr) );
    

    相关文章

      网友评论

          本文标题:数据类型

          本文链接:https://www.haomeiwen.com/subject/pdwvghtx.html