js字符串最多存储多少字节?

JavaScript012

js字符串最多存储多少字节?,第1张

‍‍

JS字符串的长度受到下标限制。理论最大长度是2^53-1(即js中可表达的最大安全整数)。2^53是多大呢?大约9PB。根据统计,中国2014年所有出版物(不计复本)不到2000亿字,也就是400GB而已。按此推算,不要说存一个txt了,中国自有甲骨文以来所有的书、各类出版物字数加在一起估计也不可能超过100TB,也就是0.1PB。当然啦,实际引擎是不可能允许分配那么大的字符串的,你的电脑也没那么大存储不是。V8的heap上限只有2GB不到,允许分配的单个字符串大小上限更只有大约是512MB不到。JS字符串是UTF16编码保存,所以也就是2.68亿个字符。FF大约也是这个数字。根据最长的网络小说是哪部,目前最长的网络小说大概2000万字。所以还是绰绰有余的。《道藏》大约7000万字,《大藏经》大约1亿字,也是存得下的。不过《永乐大典》有3.7亿字,《四库全书》有8亿字,V8/FF的一个字符串就存不下喽。然而IE11貌似可以存4GB的字符串,即21亿字。其实限制是在服务器资源、网速和存储。你文本还没读完,值还没赋完,内存不够了。内存够了,几百m几个G的变量,搞得页面请求超时了,访客没耐心关掉了,或者浏览器内存崩溃了。取一次吗?还是经常要用,要持久化不,数据库肯定存不下,文件存吧〔占硬盘,存不了几个〕,又每次要io读。你干嘛不搞几百字的简介,配个图,附上文件的下载地址〔放网盘,2T内免费〕不是很好吗。

‍‍

//获取字符数,1个中文=2个英文字符

//参数:对象

function gw_js_checkform_str_len(str){

var value=str

var length=value.length

if(length>0){

for(var i=0i<lengthi++){

var value_substr=value.substr(i,1)//截取字符串

var value_escape=escape(value_substr)//编码

if(value_escape.indexOf('%u')>-1){length++} //是否搜索到指定字符串

//if(value_escape.length>3){length++} //也可使用此语句替换上一条语句

}

}

return length

}

方法一:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html charset=gb2312" />

<title>JS限制输入字数</title>

<script type="text/javascript">

function isNotMax(oinput){

if( oinput.value.length >oinput.getAttribute("maxlength")){

return oinput.value.substring(0,oinut.getAttribute("maxlength"))

}else{

return oinput.value

}

}

</script>

</head>

<body>

<h3>JS限制输入字数1</h3>

<input style="height:100px width:600px border:1px solid #333"maxlength="10"></input>

</body>

</html>

方法二:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html charset=gb2312" />

<title>JS限制输入字数2</title>

</head>

<body>

<input type="text" size="70" maxlength="20" name="giftDescribe" onkeyup="javascript:checkWord(20)" onblur="javascript:hiddWordDiv()">

</body>

</html>