对象与简单和复杂数据类型在内存中的存储方式

243 阅读2分钟

目标:知道对象数据类型的特征,具备对象数组数据渲染页面的能力。

什么是对象? 为什么需要对象?

  • 何为对象:万物皆对象,对现实事物的描述。客观世界中的具体的实体都是对象 如一个人,一个气球,一辆汽车,咱们的 班主任等.

  • 需求: 如何在JS中存储班主任这个对象的信息 ?

      • 静态特征 (姓名, 年龄, 身高, 性别, 爱好) => 可以使用数字, 字符串, 数组, 布尔类型等表示
      • 动态行为 (点名, 唱, 跳, rap) => 使用函数表示

对象的基本语法介绍

  • 在Js中, 对象就是一组无序的键值对的集合

  • 说明

      1. 我们把冒号左边的内容称之为属性, 右边称之为值, 成对出现, 故称之为键值对
      1. 当右边的值为函数的时候, 我们更喜欢将这个属性称之为方法
      1. 对象本质上也是一种数据集合, 对比数组来说它里面装的都是不同类型的数据, 并且有对应的属性提示数据的含义
    • 提问: 上述信息是否可以使用数组存储

对象的基本使用

  • 对象本质上也是数据集合,使用无外乎增删改查

  • 查语法: 对象名.属性

  • 改语法: 对象名.属性 = 新值

  • 增语法: 对象名.新属性名 = 新值

  • 删语法(一嘴带过)

    • delete 对象名.属性名

对象遍历

  • 引入[]语法操作对象属性

    • 对比点语法的相同点和不同点

        1. 都可以访问对象的属性 对象名.属性名 === 对象名['属性名']
        1. []语法里面的值如果不添加引号 默认会当成变量解析
        1. 没有必要的时候直接使用点语法, 在需要解析变量的时候使用 [] 语法
  • 遍历对象

    • for 遍历对象的问题:

      • 对象没有像数组一样的length属性,所以无法确定长度
      • 对象里面是无序的键值对, 没有规律. 不像数组里面有规律的下标
    • 通过for in 语法

        1. for in语法中的 attr 是一个变量, 在循环的过程中依次代表对象的属性名
        1. 由于attr是变量, 所以必须使用 [ ] 语法解析
  • 综合案例

内置对象

  • 什么是内置对象? 为什么要学习内置对象

  • Math

    • Math.PI

    • 最大值/最小值

    • 绝对值

    • 取整

    • 随机数

      • 求 0 -n之间的随机数
      • 求m-n之间的随机数
      • 练习: 随机抽奖 / 猜数字游戏

综合案例

  • 学成在线页面渲染案例

简单类型和复杂类型

  • 堆和栈
  • 简单数据类型传参
  • 复杂数据类型传参