JavaScript 原始值与引用值的存储机制解析

作者:纸飞机

时间:2026-10-24

浏览:575

本文深入解析JavaScript中原始值与引用值的存储差异。原始值如Number、String等直接存储在栈内存中,而引用值如Object、Array等存储在堆内存中,栈中仅保存指向堆的地址。理解这一机制有助于掌握变量赋值、对象引用及内存管理的核心逻辑。

文章目录

原始值,也被称为基本类型。

Number String Boolean undefined null

这类数据存储在栈(stack)内存中的简单数据段,意味着它们的实际值直接存储在变量访问的位置。

动态语言、脚本语言、解释型语言以及弱类型语言通常对应此类特性。

相比之下,静态语言、编译型语言、强类型语言则具有不同的类型检查机制。

null 表示空值,常用于初始化组件、函数或销毁函数时的占位。

引用值。

object array function date RegExp

若值为引用类型,其存储空间将从堆中分配。由于引用值的大小可能动态变化,将其直接置于栈中会降低变量查询速度。因此,栈空间中存储的仅是该对象在堆中的地址。因地址大小固定,这种存储方式对变量性能无负面影响。 ex


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>D1</title>
</head>
<body>
    <script type="text/javascript">
        var arr1 = [1,2,3,4];
        var arr2 = arr1;
        //arr1.push(5);//此时打印arr2为1,2,3,4,5
        arr1 = [1,2];//重新赋值不会影响arr2
        document.write(arr2);
    </script>
</body>
</html>

至此,关于JS原始值和引用值的介绍结束。如需了解更多相关内容,请搜索本站历史文章或浏览后续文章,感谢大家的支持!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章