美文网首页
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