Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
59
rated 0 times [  60] [ 1]  / answers: 1 / hits: 24794  / 14 Years ago, sat, february 5, 2011, 12:00:00

A question that has happened to me is that different Data type in javascript how many use of memory . for Example in C++ data type like int , char , float uses order 2 , 1 , 8 byte of memory . now data Type like Number , string , boolean , null , undefind and Objects , Arrays in javascript how many use of memory and what is ranges that accepted ?
Accept my apologize because of my low English level!!!


More From » types

 Answers
7

Numbers are 8 bytes.



Found that in this w3schools page.



I searched around a bit more for other JavaScript primitive types, but it's surprisingly hard to find this information! I did find the following code though:



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


Seems to indicate that a String is 2 bytes per character, and a boolean is 4 bytes.



Found that code here and here. The full code's actually used to get the rough size of an object.



Although, upon further reading, I found this interesting code by konijn on this page: 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


So it seems that the string's size in memory depends on the characters themselves. Although I am still trying to figure out why he set the count to 1 if it's 1, otherwise he took count-1 (in the for loop).



Will update post if I find anything else.


[#93889] Thursday, February 3, 2011, 14 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
austenjordang

Total Points: 544
Total Questions: 112
Total Answers: 112

Location: Monaco
Member since Sun, Jan 16, 2022
2 Years ago
;