当前位置: 首页 > news >正文

整站seo优化公司浙江seo

整站seo优化公司,浙江seo,met metro wordpress,wordpress 开启多站点文章目录一、数据类型分类二、存储机制的区别(1) 原始类型的存储方式(2) 引用类型的存储方式三、内存模型图解四、关键差异总结五、常见问题在 JavaScript 中,数据类型分为两类: 原始类型(基本类型) 和 引用类型(对象…

文章目录

      • 一、数据类型分类
      • 二、存储机制的区别
        • (1) 原始类型的存储方式
        • (2) 引用类型的存储方式
      • 三、内存模型图解
      • 四、关键差异总结
      • 五、常见问题

在 JavaScript 中,数据类型分为两类: 原始类型(基本类型)引用类型(对象类型),它们在内存存储方式上有显著差异。


一、数据类型分类

  1. 原始类型(Primitive Types)

    • Number:数值(整数、浮点数)
    • String:字符串
    • Boolean:布尔值(true/false
    • Null:空值
    • Undefined:未定义
    • Symbol:唯一标识符(ES6 新增)
    • BigInt:大整数(ES11 新增)
  2. 引用类型(Reference Types)

    • Object:普通对象 {}
    • Array:数组 []
    • Function:函数
    • DateRegExpMapSet 等内置对象

二、存储机制的区别

(1) 原始类型的存储方式
  • 存储位置:变量直接存储值本身(栈内存 Stack)。

  • 行为特点

    • 按值访问:操作变量时直接操作实际值。
    • 不可变性:修改值会创建新数据,原数据不变。
    • 赋值传递:赋值给其他变量时 复制值
    let a = 10;
    let b = a; // b 复制 a 的值(10)
    b = 20;    // 修改 b 不影响 a
    console.log(a); // 10(不变)
    
(2) 引用类型的存储方式
  • 存储位置:变量存储对象在堆内存中的地址(指针),实际数据存在堆中(Heap)。

  • 行为特点

    • 按引用访问:变量操作的是对象的地址。
    • 可变性:修改对象属性会影响所有指向该地址的变量。
    • 赋值传递:赋值给其他变量时 复制地址(非实际对象)。
    let obj1 = { name: "Alice" };
    let obj2 = obj1;   // obj2 复制 obj1 的地址(指向同一对象)
    obj2.name = "Bob"; // 修改 obj2 会影响 obj1
    console.log(obj1.name); // "Bob"(被修改)
    

三、内存模型图解

栈内存 (Stack)                堆内存 (Heap)
┌─────────────┐            ┌─────────────────────┐
│ 原始类型变量 │            │                     │
├─────────────┤            │  引用类型实际数据    │
│   a = 10    │            │ ┌─────────────────┐ │
│   b = 20    │            │ │ { name: "Bob" }  │ │
│   ...       │            │ └─────────────────┘ │
│             │            │                     │
│ 引用类型变量 │            │                     │
│  obj1 ────────┼──────────▶ 地址 0x123        │
│  obj2 ────────┘           │                     │
└─────────────┘            └─────────────────────┘

四、关键差异总结

特性原始类型引用类型
存储位置栈内存(直接存储值)堆内存(变量存储地址,对象存堆中)
赋值行为复制值(独立副本)复制地址(指向同一对象)
比较方式值相等 a === b(比较值)引用相等 obj1 === obj2(比较地址)
可变性不可变(修改创建新值)可变(修改影响所有引用)
内存管理自动回收(随栈帧销毁)GC 垃圾回收机制跟踪

五、常见问题

  1. 为什么 null === object
    typeof null 返回 "object"(历史遗留 bug),但 null 本质是原始类型。

  2. 如何检测类型?

    • 原始类型:用 typeoftypeof "abc" → "string")。
    • 引用类型:用 instanceofObject.prototype.toString.call()
  3. 深度克隆对象?
    由于引用类型的赋值是浅拷贝,需用 JSON.parse(JSON.stringify(obj)) 或递归实现深拷贝。


通过理解存储机制的差异,可以避免因引用类型误用导致的数据篡改问题,同时优化内存使用。

http://www.dtcms.com/a/399780.html

相关文章:

  • 上传网站步骤wordpress调用小工具
  • 学了网站建设的心得体会最好设计网站建设
  • 上海信息公司做网站软件开发需要学什么专业好
  • 网站页面设计效果图江苏网站seo平台
  • 网站做细分领域客户管理系统网站
  • 网站开发建设费用外国高端网站
  • 电商资讯网站有哪些茶文化网站制作
  • Vue前端用什么开发工具?Vue前端开发常用工具推荐、Vue开发工具对比与最佳实践分享
  • 网站网站制作网站营销最好的方法
  • linux安装hbase(完)
  • S7-200 SMART PLC 以太网通信详解:3 种方式从原理到实操
  • 岳阳做网站 公司电话做农产品的网站名称
  • 我们公司在做网站推广莱芜百度推广电话
  • leetcode(填充每个节点的下一个右侧节点指针 II)
  • 如何提高网站在搜索引擎中的排名wordpress主题有后台
  • 展厅讲解机器人如何选?AI大模型是关键
  • 做网站找沈阳横纵网络通辽网站制作公司
  • PyTorch深度学习实战【12】之基于RNN的自然语言处理入门
  • 【超详细图文教程】Windows 系统 Go 语言环境安装与配置详细教程​
  • 广州网站制作实力乐云seo网站开发知识视频教程
  • hive架构及搭建
  • JavaWeb之快递管理系统(完结)
  • 网站建设公司有哪几家微信广告朋友圈投放
  • 网站运行环境建设方案进一步强化网站建设
  • WIFI大师小程序4.1.9独立版源码
  • sparkml 多列共享labelEncoder pipeline方案
  • Python临时文件与目录完全指南:从基础到高级实战
  • 哪个网站收录排名好东台网络推广
  • 免费个人logo设计网站网页设计好的网站
  • 网站COM和CN有啥区别