(1)for in:遍历对象的key
<script>
    var obj = {a:1, b:2}
    for(key in obj){
        console.log(key) 
        // a
        // b
    }
</script>
如果对象非空,则一定会执行for in里面的代码,可以以此验证此对象是否是空对象
<script>
    function ObjIsEmpty(obj){
        var isEmpty = true
        //如果存在任何一个属性,则将isEmpty赋值为false
        for(key in obj){
            isEmpty = false
        }
        return isEmpty
    }
    var obj = {}
    var obj2 = {a:1, b:2}
    console.log(ObjIsEmpty(obj)) //true
    console.log(ObjIsEmpty(obj2)) //false
</script>
(2)Object.keys():返回一个数组,数组元素就是对象的所有key,之后可以用数组方法遍历该对象的所有key(包含所有可枚举属性)
<script>
    var obj = {}
    var obj2 = {a:1, b:2}
    var keys = Object.keys(obj)
    var keys2 = Object.keys(obj2)
    console.log(keys) //[]
    console.log(keys2) //[‘a‘,‘b‘]
    //判断其长度,不为0则表示该对象非空
    console.log(keys.length) // 0
    console.log(keys2.length) //2
</script>
(3)Object.getOwnPropertyNames():返回一个数组,包含对象自身的所有属性(包括不可枚举属性)
<script>
    var obj = {}
    var obj2 = {a:1, b:2}
    var keys = Object.getOwnPropertyNames(obj)
    var keys2 = Object.getOwnPropertyNames(obj2)
    console.log(keys) //[]
    console.log(keys2) //[‘a‘,‘b‘]
    //判断其长度,不为0则表示该对象非空
    console.log(keys.length) // 0
    console.log(keys2.length) //2
</script>
(1)通过JSON.stringify()可将对象转换成JSON字符串
<script>
    var obj = {}
    var obj2 = {a:1, b:2}
    console.log(JSON.stringify(obj)) //{}
    console.log(JSON.stringify(obj2)) //{a:1, b:2}
</script>
可以以此判断对象是否为空
<script>
    var obj = {}
    var obj2 = {a:1, b:2}
    function ObjIsEmpty(obj){
        if(JSON.stringify(obj) === ‘{}‘){
            return true
        }else{
            return false
        }
    }
    console.log(ObjIsEmpty(obj)) //true
    console.log(ObjIsEmpty(obj2)) //false
</script>
(2)通过JSON.parse()可将JSON字符串转换成对象
<script>
    var objStr = ‘{"a":1, "b":2}‘
    var obj = JSON.parse(objStr)
    console.log(obj.a,obj.b) //1 2
</script>
原文:https://www.cnblogs.com/OrochiZ-/p/13976830.html