发生在我身上的一个问题是,javascript中的不同数据类型有多少内存使用.例如,在C数据类型中,如int,char,float使用顺序2,1,8字节的内存.现在数据类型像数字,字符串,布尔值,空,undefind和对象,javascript中的数组使用多少内存以及接受的范围是多少?
接受我的道歉,因为我的英语水平低!
解决方法:
数字是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;
}
...
似乎表示String是每个字符2个字节,布尔值是4个字节.
找到代码here和here.完整代码实际上用于获取对象的粗略大小.
虽然经过进一步阅读,我在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循环中).
如果我发现任何其他内容,将更新帖子.