json对象的判断

2019-07-30  本文已影响0人  魅眼ALong
var data = {};
var b = JSON.stringify(data) == "{}";
alert(b); //true
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

    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();都可以判断出其具体的类型。

上一篇下一篇

猜你喜欢

热点阅读