js判断对象的几种方法

JavaScript07

js判断对象的几种方法,第1张

1、for in 循环

eg:var obj = {}

        var b = function () {

            for (var key in obj) {

                return false

            }

            return true

        }

        console.log(b())  // true

2、对象序列化(将对象转换为字符串)后进行判断

eg:var data = {}

        var b = (JSON.stringify(data) == "{}")

        console.log(b)  // true

3、jquery的isEmptyObject()方法

eg:  var data = {}

        var b = $.isEmptyObject(data)

        console.log(b)  // true

4、Object.getOwnPropertyNames()方法

eg:  var data = {}

        var arr = Object.getOwnPropertyNames(data)

        console.log(arr.length == 0)  // true

5、ES6中的Object.keys()方法

eg:  var data = {}

        var arr = Object.keys(data)

        console.log(arr.length == 0)  // true

//js中创建对象有两种方法:

//1、对象字面量法

var o1={name:"aaa",age:17}

//2、构造函数法

var o2=new Object()

o2.name="bbb"

o2.age=20

对象是复杂数据类型,定义了无序键值对的集合

delect obj.name 删除属性名和值

obj.name = undefined 删除属性值

name in obj &&name === undefined 判断含有属性名,但值为undefined

注意 name === undefined 不能判定 name 是否为 obj 的属性

Object.key(obj) 查看对象的所有属性名

Object.values(obj) 查看对象的所有属性值

Object.entries(obj) 查看对象的所有属性名和属性值

console.dir(obj) 查看共有属性和自身属性

name in obj 判断属性名是否存在,不会区分自身属性和共有属性

obj.hasOwnProperty('name') 判断对象自身拥有的属性,不包含共有属性

属性存在则修改,没有则增加

批量赋值,ES6 新出

Object.assign(obj, {p1 = 1, p2 = 2, p3 = 3})