gpt4 book ai didi

存储在堆栈中的 Javascript 字符串

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:44:22 26 4
gpt4 key购买 nike

我正在阅读 Professional JavaScript for Web Developers 3rd ed.在第 4 章的总结中可以看到:

Two types of values can be stored in JavaScript variables: primitive values and reference values. Primitive values have one of the five primitive data types: Undefined, Null, Boolean, Number, and String. Primitive and reference values have the following characteristics:

  • Primitive values are of a fixed size and so are stored in memory on the stack.

但是我可以有不同的字符串,比如:

var a = "ABC";

// or

var b = "Some very irritatingly long string..."

它们的大小明显不同,那么它们如何在堆栈上分配呢?

我相信关于数字也可以问同样的问题......

所以我肯定在这里遗漏了一些重要的东西。

谁能解释为什么字符串/数字是固定大小的,以及它们如何存储在堆栈中?

最佳答案

字符串(通常是数字)不是固定大小的,也不是完整地存储在堆栈中,但在语言中,它们的行为就像可以存储在堆栈中一样。

由实现语言的人决定如何在内部存储数据。通常,数据会根据值以不同的方式存储。

尽管 JavaScript 中的数字始终表现为 double float ,但当数字恰好是整数值时,通常会以不同方式存储。一些 JavaScript 引擎使用未使用的 double 值作为整数值,另一些引擎将整数存储在值本身中,并将 double 值存储在堆上。

对于字符串,一些数据可以存储在堆栈中的一个项目中,例如长度和对存储在堆中的字符串内容的引用。对于短字符串,字符可以代替引用放入堆栈中的值中,因此不需要堆上的额外数据。

关于存储在堆栈中的 Javascript 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33125547/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com