美文网首页
JavaScript 中如何判断数据类型

JavaScript 中如何判断数据类型

作者: 我的昵称是小狼 | 来源:发表于2019-03-16 21:19 被阅读0次

    JavaScript的类型

    JavaScript 是一门弱类型的编程语言,其一共有6中数据类型

    1.Number 数值类型
    2.String 字符串类型
    3.Boolean 布尔类型
    4.undefined 未定义类型
    5.null 空值
    6.object 对象类型

    在JavaScript 中的比较操作

    在JavaScript中存在两种比较操作分别是 =====
    两个的区别在于 ===不会做默认的类型转换,会比较两个值的类型是否一致,当然对于object类型的值=====是一样的,两者都是比较object类型的引用是否为同一个对象 (Array也是obejct类型)

    References : Stack Overflow 回答

    如何判断JavaScript的数据类型

    JavaScript 提供了typeof 函数来返回数据类型,但是typeof操作符的返回值有时候是不准确的.
    例如 typeof new Number(1) # object

    针对上面的情况,我们可以使用toString()函数来返回数据的真正对象

    var mytypeof = function (o) {
      var s = Object.prototype.toString.call(o);
      return s.match(/\[object (.*?)\]/)[1].toLowerCase();
    }
    mytypeof({}); // "object"
    mytypeof([]); // "array"
    mytypeof(5); // "number"
    mytypeof(null); // "null"
    mytypeof(); // "undefined"
    mytypeof(/abcd/); // "regex"
    mytypeof(new Date()); // "date"
    

    但是JavaScript中还有两个比较特殊的类型 NaN, Array,针对这两个类型我们可以使用isNaNArray.isArray来检测其类型

    PS:typeof 操作符一般可以用来判断某个值或函数是否存在

    JavaScript 是面向对象的编程语言,JavaScript是通过原型链做继承的,当我们想要检测自定义的对象,或者对象的继承关系的时候.
    这个时候应该使用instanceof操作符(instanceof 只能用于检测object类型的值).这个函数是通过构造函数的prototype来检测对象的类型的

    function Super(age){
    
    this.name = "lsh";
    
    this.age = age;
    
    }
    
    Super.prototype.sayName = function (){
    
    console.log(this.name);
    
    }
    
    function Sub(){
    
    Super.call(this,99);
    
    }
    
    Sub.prototype = new Super;
    
    Sub.prototype.constructor = Sub;
    
    Sub.prototype.hello = function (){
    
    console.log(this.age);
    
    }
    
    var s = new Super();
    
    var n = new Sub();
    
    
    console.log(n instanceof Sub);
    
    console.log(n instanceof Super);
    

    相关文章

      网友评论

          本文标题:JavaScript 中如何判断数据类型

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