JavaScript对象
@ EatFog · Sunday, Jun 28, 2020 · 1 分钟阅读 · 更新于 Jun 28, 2020

JavaScript的对象是JavaScript的核心,接下来我们就来介绍JavaScript对象相关的知识

对象

  1. 无序的数据集合,键值对的集合
  2. 写法:

    let obj = { 'name': 'frank', 'age': 18 }//快速写法
    let obj = new Object({'name': 'frank'})//正规写法
    console.log({ 'name': 'frank, 'age': 18 })//直接用对象
    
  3. 键名是字符串,引号可以省略,但是就算省略了,键名还是字符串

  4. 属性名不加引号,又可能会被转换就像1e2=>100

  5. 键名key是对象的属性名,键值value是对象的属性值

  6. 把[a]作为属性名,那么该属性名会是字符串a的值

对象的原型

  1. JavaScript中,每个对象都会有隐藏属性_proto_,其储存有共有属性组成的对象的地址,这个共有属性对象叫原型,其储存有许多方法和值
  2. 对象的原型也是一个对象,这个对象里有 toString / constructor / valueOf 等属性
  3. obj={}的原型为所有对象的原型。这个原型包含所有对象的共有属性,是对象的根。这个原型也有原型,是 null。
  4. window.Object.prototype是原型的地址,可以直接改原型的属性
  5. 最好不要直接改原型,会导致代码出问题
  6. 设置对象obj的原型是common,声明对象的时候就改原型

    let common = {city:'ShangHai'}
    let obj = Object.create(common)
    obj.name = 'frank'
    

对象属性的删除

  1. 删除属性的值和名

    delete obj.xxx或delete obj['xxx']
    
  2. 删除属性值

    obj.xxx=undefined
    
  3. obj.xxx===undefined无法判断xxx是否是obj的属性,需要加上'xxx' in obj判断

对象属性的查询

  1. 查看对象的所有属性名

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

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

    Object.entries(obj)
    console.dir(obj)
    
  4. 判断一个属性是自身的还是共有的

    obj.hasOwnProperty('toString')
    
  5. 对象obj中是否存在属性

    'xxx' in obj//会返回ture,false
    
  6. 查看属性

    obj.name//name当作是字符串
    obj['name']
    obj[name]//不对,这样会获得属性名是变量name的值
    

修改和增加属性

修改属性和增加属性是一样的

  1. 直接赋值

    let obj = {name: 'frank'} // name 是字符串
    obj.name = 'frank' // name 是字符串
    obj['name'] = 'frank' 
    obj['na'+'me'] = 'frank'
    let key = 'name'; obj[key] = 'frank'
    obj[name] = 'frank' // 错,因 name 值不确定
    let key = 'name'; obj.key = 'frank' // 错因为 obj.key 等价于 obj['key']
    
  2. 批量赋值,把右边的的值赋给左边

    Object.assign(obj, {age: 18, gender: 'man'})
    

自我介绍

Hi!我是蒋俊杰

你也可以叫我EatFog

这是我的第一个blog

社交链接