对象数据类型-Object

对象数据类型-Object

认识对象数据类型 - Object

​ 1. 是 js 中的一个数据类型, 是一个复杂数据类型

​ 2. 是一个 “盒子”, 承载的是 数据

​ 3. 是一个无序的数据集合, 也是一个键(key)值(value)对的集合

对象数据类型的创建

​ 1. 字面量方式创建对象

​ (1) 创建空对象: var obj = {}

var obj = {}
     console.log(obj)

​ (2) 创建带有数据的对象: var obj = { 键值对 }

​ <1> 键值对, 键: 值

​ <2> 可以书写多个, 多个之间使用 逗号(,) 分隔

​ <3> 最后一个键值对后面不需要书写 逗号(,), 可以写但是不推荐

​ 带有数据的对象

​ obj 对象内有一个成员, 键(key) 是 name, 值(value) 是 ‘Jack’

var obj = {
       name: 'Jack',
       age: 18,
       gender: '男'
     }
     console.log(obj)

​ 2. 内置构造函数(类)创建

​ 创建空对象: var obj = new Object()

  var obj = new Object()
    console.log(obj)

对象的基本操作(增删改查)

增删改查

​ 1.增: 相对内添加成员

​ 2.删: 删除对象内某一个成员

​ 3. 改: 修改对象内某一个成员

​ 4. 查: 获取对象内某一个成员的值, 根据 key 获取 value

在 JS 内, 对于对象的操作提供了两套语法

1.点语法

  1. 数组关联语法

点语法

​ 1.增加

​ 语法: 对象名.键名 = 值

例如:向 obj 这个对象内增加一个叫做 name 的 key, 值存储的是 ‘Jack’

     obj.name = 'Jack'
     obj.age = 18
     obj.gender = '男'
     obj.info = { weight: 180, height: 180 }
     obj.sayHi = function () { console.log('hello world') }
     console.log('增加之后 : ', obj)
  1. 删除

​ 语法: delete 对象名.键名

例如:删除 obj 对象内一个叫做 age 的成员

     delete obj.age
     console.log('删除之后 : ', obj)
  1. 修改

​ 1. 语法: 对象名.键名 = 值

​ 2.因为对象内 key 不允许重名

​ 3.当你设置的时候, 原先有就是修改, 原先没有就是增加

例如:设置 obj 内一个叫做 gender 的 key, 值存储为 ‘女’

因为原先就有 gender 这个 key, 所以就是把原先的修改了

     obj.gender = '女'
     console.log('修改之后 : ', obj)

4.查询

​ 1. 语法: 对象名.键名

​ 2. 在访问的时候, 如果对象内有这个键, 那么直接给出值

​ 3. 如果对象内没有这个键, 那么给出 undefined(暂时)

console.log(obj.gender)

数组关联语法

1.增加

​ 语法: 对象名[‘键名’] = 值

2.删除

​ 语法: delete 对象名[‘键名’]

3.修改

​ 语法: 对象名[‘键名’] = 值

​ 原先有就是修改, 原先没有就是增加

  1. 查询

​ 语法: 对象名[‘键名’]

    // 准备一个空对象
    var obj = {}
    console.log('原始对象 : ', obj)

    // 1. 增加
    obj['name'] = 'Rose'
    obj.age = 20
    obj['gender'] = '女'
    console.log('增加之后 : ', obj)

    // 2. 删除
    delete obj['age']
    console.log('删除之后 : ', obj)

    // 3. 修改
    obj['gender'] = '男'
    console.log('修改之后 : ', obj)

    // 4. 查
    console.log(obj['name'])

两种对象操作语法的区别

​ 1. 操作符合变量命名规则和规范的, 使用两种语法无所谓

​ 2. 操作纯数字的 key 或者操作带有特殊符号的 key, 只能使用数组关联语法

​ 3.当你的 key 涉及变量的时候, 只能使用数组关联语法

var obj = {
      name: 'Jack',
      n1: 100,
      abc$222: 'hello',
      1: 100,
      2: true,
      'a-c': '随便来',
      '^_^': 'O(∩_∩)O哈哈~'
    }
    console.log(obj)

    var s = 'name'

    // 单纯的访问 obj 内一个叫做 s 的 key 保存的值, 和 s 变量没有任何关系
    console.log(obj.s)
    // 单纯的访问 obj 内一个叫做 s 的 key 保存的值, 和 s 变量没有任何关系
    console.log(obj['s'])
    // 中括号内没有书写 字符串, 而是书写的一个变量
    // 相当于在 访问 s 变量, 把 s 变量的值拿过来放在 [] 内
    // obj[s] === obj['name'] 访问的就是 obj 内一个叫做 name 的 key 保存的值
    console.log(obj[s])

对象的 key 可以写什么内容

1.推荐使用符合变量命名规则和规范的名字作为 key

  1. 可以使用纯数字当做对象的 key, 一旦使用纯数字, 会把纯数字的排列在所有成员的最前面

3.可以使用任何符号当做对象的key, 如果包含特殊符号, 那么key 位置需要使用引号包裹

 var obj = {
       name: 'Jack',
       n1: 100,
       abc$222: 'hello',
       1: 100,
       2: true,
      'a#c': '随便来',
       '^_^': 'O(∩_∩)O哈哈~'
     }
     console.log(obj)

对象的遍历

​ 1. 不能使用 for 循环进行遍历

​ 2. 使用 for in 循环进行遍历

​ 3. 语法:

​ for (var 变量 in 对象) {

​ 重复执行的代码

​ }

​ (1) 对象内有多少个成员, 该循环执行多少次

​ (2) 随着循环, 变量就分别是每一个 key

var obj = {
      name: 'Jack',
      age: 18,
      gender: '男',
      score: 100
    }
    console.log(obj)
    // 开始遍历
    for (var k in obj) {
      // 随着循环, k 分别是 obj 内的每一个 key
      console.log('我执行了', k)
      // 能拿到 对象名, 能随着循环拿到一个变量 k 表示每一个 key
      // 如何访问对象内的每一个成员
      console.log(obj.k) // 都是在准确的访问对象内一个叫做 k 的成员, 和 k 变量没有任何关系
      console.log(obj[k])
    }
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值