美文网首页
json对象的判断

json对象的判断

作者: 魅眼ALong | 来源:发表于2019-07-30 16:00 被阅读0次
    • 是否空对象
    var data = {};
    var b = JSON.stringify(data) == "{}";
    alert(b); //true
    
    • 判断是否存在对象 ObjecthasOwnProperty() 方法返回一个布尔值,判断对象是否包含特定的自身(非继承)属性。
    function foo() {
      this.name = 'foo'
      this.sayHi = function () {
        console.log('Say Hi')
      }
    }
    foo.prototype.sayBye = function () {
      console.log('Bye');
    }
    
    //方法1
    foo.hasOwnProperty('name');//true
    //方法2
    console.log('sayBye ' in foo) // true
    //方法3 也可以使用 Object 原型上的 hasOwnProperty 属性
    Object.prototype.hasOwnProperty.call(foo, 'sayhello'); // false
    //方法4 还是最为稳妥去 遍历 for in (若返回结果 undefined  ;hasOwnProperty无论什么判断都会返回true,
    
    
    • 判断对象属性是否是原型中的属性

    hasOwnProperty()方法:用于判断自身含有的属性存在与对象实例中
    in操作符:只要通过对象能访问到属性就返回true。

    //所以需要判断:
    !obj.hasOwnProperty(name);   
    (name in obj);  //true
    
    
    • 判断对象的具体类型 Object.prototype.toString.call()
        var str = 'hello';
        console.log(Object.prototype.toString.call(str));//[object String]
        var bool = true;
        console.log(Object.prototype.toString.call(bool))//[object Boolean]
        var num = 123;
        console.log(Object.prototype.toString.call(num));//[object Number]
        var nul = null;
        console.log(Object.prototype.toString.call(nul));//[object Null]
        var und = undefined;
        console.log(Object.prototype.toString.call(und));//[object Undefined]
        var oDate = new Date();
        console.log(Object.prototype.toString.call(oDate));//[object Date]
        var json = {};
        console.log(Object.prototype.toString.call(json));//[object Object]
        var arr = [];
        console.log(Object.prototype.toString.call(arr));//[object Array]
        var reg = /a/;
        console.log(Object.prototype.toString.call(reg));//[object RegExp]
        var fun = function(){};
        console.log(Object.prototype.toString.call(fun));//[object Function]
        var error = new Error();
        console.log(Object.prototype.toString.call(error));//[object Error]
    
    image.png

    从这个结果也可以看出,不管是什么类型的,Object.prototype.toString.call();都可以判断出其具体的类型。

    相关文章

      网友评论

          本文标题:json对象的判断

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