对象数据类型

94 阅读4分钟
  1. 对象数据类型 是js数据类型的一种 一个复杂数据类型 函数:一个盒子,承载一段代码 对象:一个盒子,承载一堆数据 本质:抽象的一个事物
  2. 对象创建的方式
    • 字面量的创建 =》var a = {}
    • 内置构造函数创建 =》js给我们提供了一个内置构造函数叫做object =》var a = new object()
    • 两种创建方式的区别
      1. 字面量创建可以在创建的时候就向里面直接添加一些数据
      =》数据是以键值对的形式出现
      =》可以:value的形式
      =》key就是这个数据的名字
      =》value就是这个数据的值
      =》多个数据之间用逗号分隔开
      =》里面是数据叫做对象的属性,里面是函数叫做对象的方法
      
      1. 内置构造函数不好直接添加数据 =》直接创建一个空对象 =》后期通过对象的操作语法来进行增删改查
  3. 对象的操作语法
  • 增:向对象里面添加一个成员
  • 删:删除对象里的成员
  • 改:对成员进行改动
  • 查:获取对象里面的某一个值
  1. 点语法
    =》语法:对象名.成员名=值
    =》删除语法:delete.对象名.成员名
    =》修改语法:对象名.成员=值
                原有的就是修改,原先没有的就是添加
    =》查询语法:对象名.成员名
    =》当你访问一个对象里没有成员的时候,会给你一个undefined```
    注意,因为对象数据类型是一个复杂的数据类型
            在控制台打印的时候会出现两种情况
            现在的样子与最终的样子
                在控制台上,你不展开对象数据类型的时候,是当前的样子
                在控制台上,展开对象数据类型以后,就是最终的样子
    解决:你直接打印你想看到的值
          console.table()以表格形式展开
    
  2. 数据关联语法
    • 添加语法:对象名['成员名']=值
    • 删除语法:delete 对象名['成员名']=值
    • 修改语法:对象名['成员名']=值,有就是修改,没有就是添加
    • 获取语法:对象名['成员名']=值
  3. 对象两种操作语法的区别
    • 点语法不能使用变量,不能拼接字符串
    • 数组关联语法可以使用变量可以拼接字符串
    • window 的 name属性
      • 是一个全局天生自带的属性
      • 作用:在iframe标签和name属性合作进行跨域的
      • 特点:被固定为字符串类型 不管给name赋值什么数据类型,都会自动转化为字符串
  4. 数据类型存储的区别
    =》基本数据类型
        number数值
        string字符串
        boolean布尔
        nudefined空
        null空
    =》复杂数据类型
        function函数
        object对象
    
  5. 存储上的区别
    • js打开的内存空间 js是一个脚本语言,依赖于浏览器执行,本质是依赖浏览器里面的js解析引擎 js本身不打开内存空间,因为浏览器在电脑上运行的。 数据类型的存储,就是存储在浏览器分配给js存储的一段空间
    • 浏览器的一段存储空间
      栈内存
         存储机制,先来进栈底
      堆内存
         随机存储
      
    • 数据类型的存储 基本数据类型 直接把值存储在栈内存里面 复杂数据类型 把数据放在堆内存里 把地址放在栈内存的变量里 我们管这个地址叫做引用
    • 代码的执行 我们只能直接访问栈里面的内容 利用栈里的地址找到堆里面的内容
  6. 数据类型赋值的区别
    • 基本数据 : 就是把变量存储的值直接赋值给另一个变量 赋值过后两个变量没有关系了
    • 复杂数据类型
      • 因为复杂数据类型中,变量存储的是地址
      • 赋值的时候,实际是把一个变量的地址给了另一个变量
      • 赋值过后,两个变量操作一个空间
    • 函数的形参和实参的关系
      • 实参就是函数调用的时候给形参赋值
      • 实参和形参的交互,和变量赋值时一样
    • 函数的返回值也是变量赋值的一种
      • 返回值是把函数内部的数据返回出去 retur