js字符串的长度

JavaScript018

js字符串的长度,第1张

字符串的最大长度与js中能表达的【最大安全整数】有关系,这是为什么呢

utf-16相关:

符号位1 指数为11 位位尾数位52 (1+11+52=64)

那应该是2^52-1 才对,但小数点前保留一位规格化后始终是1.***这个不需要存,所以这样就成了2^53-1

我理解是:只要转码后的二进制总长度不超出2^53-1就行,但是不一样的编码方式转码后的二进制长度不相同,所以字符串最大字符长度受字符串编码方式影响

负数求二进制

例:-14

原码->反码->补码

原码0000 1110 (14= 2^3 + 2^2 + 2^1)

反码 1111 0001(按位取反)

补码 1111 0010(反码加一)

小数二进制

例:1.5的二进制1.1,二进制1.1反推回去:1 * 2^0 + 1 * 2^(-1)=1.5

js数组的长度可以是无限的,只要内存允许的话。数组的初始长度可以设置,如果需要,随后该长度可以自动增长,使用数字串当作数组的索引等价于直接使用数字索引。

例如:

例如数组元素是String,String的长度js本身是没限制的,所以也不会有一个String太长了不能放在数组中的问题。

对于自定义的对象,它的成员的大小也是不会有限制的,对于Number 对象,js可表示的最大数大约是 1.7976931348623157 x 10 (^308)。

扩展资料:

注意事项

1、JavaScript数组的length属性是可变的。

比如:

arr.length=10//增大数组的长度

document.write(arr.length)//数组长度已经变为10

2、数组随元素的增加,长度也会改变。

如下:

arr[15]=34         //增加元素,使用索引为15,赋值为34

alert(arr.length)  //显示数组的长度16