javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > JS数据类型及存储方式

JavaScript数据类型及其存储方式详细梳理

作者:Sun_light

JavaScript是一种弱类型语言,它提供了许多不同的数据类型用于存储和操作数据,下面这篇文章主要介绍了JavaScript数据类型及其存储方式的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

前言

JavaScript 作为一门动态、弱类型的编程语言,数据存储方式与传统静态语言有很大不同。理解 JS 的数据类型、内存分配机制以及数据存储的底层原理非常重要。本文将围绕“数据类型”、“语言类型特性”以及“内存空间”三个核心点,带你系统梳理 JavaScript 的数据存储原理。

JavaScript 的数据类型

1. 原始类型(基本类型)

原始类型是最基本的数据单元,存储在栈内存中,具有不可变性。包括:

特点:

2. 引用类型(复杂类型)

引用类型用于存储复杂的数据结构,存储在堆内存中。包括:

特点:

JavaScript 的类型特性

1. 静态语言与动态语言

JS 是动态类型语言,变量的类型在运行时根据赋值自动确定。例如:

let a = 10;      // Number
a = "hello";     // String
a = [1, 2, 3];   // Array

2. 强类型与弱类型

console.log(1 + "2"); // "12"
console.log("5" - 2); // 3

这种灵活性带来了便利,但也容易引发类型相关的 bug。

内存空间与数据存储

1. V8 引擎的内存空间划分

V8 是 Chrome 和 Node.js 使用的 JS 引擎。它在执行 JS 代码时,会划分出三大内存空间:

栈空间(Stack)

堆空间(Heap)

2. 原始类型与引用类型的存储方式

示例

let a = 10;           // 原始类型,a 存储 10
let b = {num: 1};       // 引用类型,b 存储堆中对象的地址
let c = b;            // c 也指向同一个对象
c.num = 2;
console.log(b.num);     // 2

实战面试题

看完以上内容,相信你已经对数据类型与其存储方式已经很了解了,让我们来做一道经典的面试题

function foo(person) {
    person.age = 20
    person = {
        name: '小钟'
    }
    return person
}
let p1 = {
    name: '小华',
    age: 18
}
let p2 = foo(p1)

console.log(p1);
console.log(p2);

运行结果

输出为:

{ name: '小华', age: 20 }
{ name: '小钟' }

过程详解

总结

JavaScript 的数据存储机制是理解 JS 语言的基础。原始类型和引用类型的本质区别在于存储位置和可变性。原始类型存储在栈空间,体积小、不可变;引用类型存储在堆空间,体积大、可变。JS 作为动态、弱类型语言,变量类型可以随时变化,类型之间可以自动转换。

到此这篇关于JavaScript数据类型及其存储方式的文章就介绍到这了,更多相关JS数据类型及存储方式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文