gpt4 book ai didi

javascript - javascript中不同数据类型的内存使用情况

转载 作者:行者123 更新时间:2023-12-03 02:07:27 25 4
gpt4 key购买 nike

我遇到的一个问题是,javascript中不同的数据类型使用了多少内存。例如,C++ 数据类型(如 int、char、float)使用 2、1、8 字节的内存。现在 JavaScript 中的数据类型(如数字、字符串、 bool 值、null、undefind 和对象、数组)使用了多少内存以及接受的范围是多少?由于我的英语水平较低,请接受我的歉意!

最佳答案

数字是 8 个字节。

发现在这个w3schools page .

我又搜索了一些其他 JavaScript 基元类型,但找到此信息却出人意料地困难!我确实找到了以下代码:

    ...
if ( typeof value === 'boolean' ) {
bytes += 4;
}
else if ( typeof value === 'string' ) {
bytes += value.length * 2;
}
else if ( typeof value === 'number' ) {
bytes += 8;
}
...

似乎表明字符串每个字符 2 个字节, bool 值每个字符 4 个字节。

发现代码herehere 。完整的代码实际上用于获取对象的粗略大小。

尽管在进一步阅读后,我发现了 konijn 这段有趣的代码在此页面上:Count byte length of string .

function getByteCount( s )
{
var count = 0, stringLength = s.length, i;
s = String( s || "" );
for( i = 0 ; i < stringLength ; i++ )
{
var partCount = encodeURI( s[i] ).split("%").length;
count += partCount==1?1:partCount-1;
}
return count;
}
getByteCount("i♥js"); // 6 bytes
getByteCount("abcd"); // 4 bytes

所以看来字符串在内存中的大小取决于字符本身。虽然我仍在试图弄清楚为什么他将计数设置为 1(如果计数为 1),否则他会采用 count-1(在 for 循环中)。

如果我发现任何其他内容,将更新帖子。

关于javascript - javascript中不同数据类型的内存使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4905861/

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