JavaScript数据类型的存储与赋值

本文深入探讨JavaScript中基本与复杂数据类型的存储机制,解析栈内存与堆内存的区别,以及数据赋值、深拷贝与浅拷贝的概念。通过实例说明,帮助读者理解不同数据类型在内存中的行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaScript 数据类型之间的存储与赋值


数据类型之间的存储区别

  • 基本数据类型
    1. Number
    2. String
    3. Boolean
    4. Undefined
    5. Null
  • 复杂数据类型
    1. Function 函数

    2. Object 对象

    3. Array 数组

一、内存空间
  • 我们所有的数据都是存储在内存空间中的

  • 浏览器的内存空间被分为了两部分

    1. 栈内存
    2. 堆内存
二、数据存储
  • 基本数据类型就是直接存储在栈内存里面的
	var n1 = 100
    var s1 = 'abc'
    var b1 = true`

在这里插入图片描述

  • 复杂数据类型
    • 数据存储在堆内存里面,会有一个空间地址
    • 地址存储在栈内存里面的变量身上
	var obj = {
      name: 'Jack',
      age: 18,
      gender: '男'
    }

    var arr = [10, 20, 30]

    function fn() {
      console.log(123)
    }

在这里插入图片描述
在这里插入图片描述


数据类型之间的赋值区别

一、基本赋值
  • 把一个变量的值 赋值给另一个变量

  • 基本数据类型赋值之后,两个变量就没有关系了

  • 复杂数据类型赋值之后,两个变量操作同一个空间

    • 一个修改空间里面的数据,另一个跟着修改
二、函数的形参和实参的交互
  • 函数的形参:就是定义在函数内部的私有变量

  • 函数的实参:就是在调用的时候给形参赋值的

  • 形参给实参赋值,和基本变量赋值的规则是一模一样的
三、数据的深拷贝和浅拷贝
  • 浅拷贝:就是地址拷贝 arr = arr2 将会共享一个地址

  • 深拷贝:实际是负值内容

    • 全局变量和里面的局部变量互相独立
四、数据的值传递和引用传递
  • 基本数据类型:属于值传递 本质就是一个简单的复制

  • 引用数据类型:属于引用传递 本质是共享地址

四、数据的值传递和引用传递

​ 基本数据类型:属于值传递 本质就是一个简单的复制

​ 引用数据类型:属于引用传递 本质是共享地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值