0%

对象的常用方法

对象的常用方法

MDN Object

Object 对象的方法

Object.assign(target, source)

  • 用于将一个对象(source)上的所有属性驾到另一个对象(target)中
  • 如果有相同属性,则覆盖之
  • 返回值 —— 新的融合了所有源对象属性的对象
    1
    2
    3
    4
    5
    let target = { a: 1, b: 2 }
    let source = { b: 4, c: 5 }

    target = Object.assign(target, source)
    console.log(target) // { a: 1, b: 4, c: 5 }

Object.keys()

  • 返回值 —— 由给定对象的自身可枚举属性组成的数组
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var obj = {
    name: '张三',
    age: 17,
    action: {
    123: '123',
    456: '456'
    }
    }
    console.log(Object.keys(obj)) // ['name', 'age', 'action']

Object.values()

返回值 —— 由给定对象的属性值组成的数组

1
2
3
4
5
6
7
8
9
10
var obj = {
name: '张三',
age: 17,
action: {
123: '123',
456: '456'
}
}

console.log(Object.values(obj)) // ['张三', 17, { 123: '123', 456: '456'}]

Object 实例的方法

Object.prototype.toString()

  • 返回值 —— 返回一个表示该对象的字符串
    1
    2
    var obj = { a: 1 }
    obj.toString() // '[object Object]'

使用 toString() 检测数据类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var toString = Object.prototype.toString

toString.call('abcd') // '[object String]'
toString.call(12) // '[object Number]'
toString.call(true) // '[object Boolean]'
toString.call(null) // '[object Null]'
toString.call(undefined) // '[object Undefined]'

toString.call([1, 2]) // '[object Array]'
toString.call(new Function) // '[object Function]'
toString.call(new Object) // '[object Object]'

toString.call(new Date) // '[object Date]'
toString.call(Math) // '[object Math]'

判断一个对象是否为空对象

  1. JSON.stringify()

    1
    2
    3
    if (JSON.stringify(obj) === '{}') {
    console.log('是空对象')
    }
  2. Object.keys()

    1
    2
    3
    if (Object.keys(obj).length === 0) {
    console.log('空对象')
    }