JS 字符串变量里能存放多少个字节(大小)?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS 字符串变量里能存放多少个字节(大小)?相关的知识,希望对你有一定的参考价值。

一个 javascript 的字符串里能存放多少个字节?

在JS中变量被分为基本类型变量和引用类型变量。
1、基本类型变量用八字节内存,存储基本数据类型(数值、布尔值、null和未定义)的值。
2、引用类型变量则只保存对对象、数组和函数等引用类型的值得引用(即内存地址)。

JS字符串的长度受到下标限制。理论最大长度是2^53-1(即js中可表达的最大安全整数)。
2^53是多大呢?大约9PB。根据统计,中国2014年所有出版物(不计复本)不到2000亿字,也就是400GB而已。
按此推算,不要说存一个txt了,中国自有甲骨文以来所有的书、各类出版物字数加在一起估计也不可能超过100TB,也就是0.1PB。
当然啦,实际引擎是不可能允许分配那么大的字符串的,你的电脑也没那么大存储不是。V8的heap上限只有2GB不到,允许分配的单个字符串大小上限更只有大约是512MB不到。JS字符串是UTF16编码保存,所以也就是2.68亿个字符。FF大约也是这个数字

最近项目有个需求要用js计算一串字符串写入到localStorage里所占的内存,众所周知的,js是使用Unicode编码的。而Unicode的实现有N种,其中用的最多的就是UTF-8和UTF-16。因此本文只对这两种编码进行讨论。
参考技术A 在JS中变量被分为基本类型变量和引用类型变量。
1、基本类型变量用八字节内存,存储基本数据类型(数值、布尔值、null和未定义)的值。
2、引用类型变量则只保存对对象、数组和函数等引用类型的值得引用(即内存地址)。
参考技术B url 限制 2k 其他的看你浏览器了

ascii编码占用的字节长度是

一个字符的ASCII码占用存储空间为1个字节。 ASCII编码是由美国国家标准委员会制定的一种包括数字、字母、通用符号、控制符号在内的字符编码集。它是一种7位编码,但它存放时必须占全一个字节,也即占用8位 参考技术A 在计算机存储单元中,一个ASCII码值占用的字节数为1。
在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示。
参考技术B ASCII 码是一种字符编码格式,它使用 7 位二进制编码来表示字符。因此,每个 ASCII 码字符通常占用 1 个字节 (8 位) 的空间。

以上是关于JS 字符串变量里能存放多少个字节(大小)?的主要内容,如果未能解决你的问题,请参考以下文章

mysql varchar定义长度多少为好

delphi中string[]是啥数据类型?

myql字节和字符

一个汉字等于多少个字节?

sqlserver数据库varchar(40)能存放多少汉字?

什么是字节变量