JavaScript字符串如何是一组;元素“;16位无符号整数值的类型?

JavaScript字符串如何是一组;元素“;16位无符号整数值的类型?,javascript,string,Javascript,String,从 JavaScript的字符串类型用于表示文本数据。它是一组16位无符号整数值的“元素”。字符串中的每个元素在字符串中占据一个位置。第一个元素位于索引0处,下一个元素位于索引1处,依此类推。字符串的长度是其中的元素数。可以使用字符串文字或字符串对象创建字符串 JavaScript字符串类型如何是一组16位无符号整数值的“元素”,为什么不是8位无符号整数值?因为EcmaScript是使用Unicode(也称UTF-16)编写的: ECMAScript源文本假定为16位代码序列 本规范中使用的单位

JavaScript的字符串类型用于表示文本数据。它是一组16位无符号整数值的“元素”。字符串中的每个元素在字符串中占据一个位置。第一个元素位于索引0处,下一个元素位于索引1处,依此类推。字符串的长度是其中的元素数。可以使用字符串文字或字符串对象创建字符串


JavaScript字符串类型如何是一组16位无符号整数值的“元素”,为什么不是8位无符号整数值?

因为EcmaScript是使用Unicode(也称UTF-16)编写的:

ECMAScript源文本假定为16位代码序列 本规范中使用的单位


因为EcmaScript是使用Unicode编写的,又称UTF-16:

ECMAScript源文本假定为16位代码序列 本规范中使用的单位


因为EcmaScript是使用Unicode编写的,又称UTF-16:

ECMAScript源文本假定为16位代码序列 本规范中使用的单位


因为EcmaScript是使用Unicode编写的,又称UTF-16:

ECMAScript源文本假定为16位代码序列 本规范中使用的单位

查看此处的帮助:

字符串类型是零或多个有序序列的集合 16位无符号整数值(“元素”),最大长度为 253-1个要素。字符串类型通常用于表示文本 正在运行的ECMAScript程序中的数据,在这种情况下,每个元素 在字符串中,被视为UTF-16代码单位值

类似的情况也可以在中找到

为什么不使用8位无符号整数值?如果使用UTF-8,这同样是可能的。但是它没有完成,现在就是这样。

看看这里的帮助:

字符串类型是零或多个有序序列的集合 16位无符号整数值(“元素”),最大长度为 253-1个要素。字符串类型通常用于表示文本 正在运行的ECMAScript程序中的数据,在这种情况下,每个元素 在字符串中,被视为UTF-16代码单位值

类似的情况也可以在中找到

为什么不使用8位无符号整数值?如果使用UTF-8,这同样是可能的。但是它没有完成,现在就是这样。

看看这里的帮助:

字符串类型是零或多个有序序列的集合 16位无符号整数值(“元素”),最大长度为 253-1个要素。字符串类型通常用于表示文本 正在运行的ECMAScript程序中的数据,在这种情况下,每个元素 在字符串中,被视为UTF-16代码单位值

类似的情况也可以在中找到

为什么不使用8位无符号整数值?如果使用UTF-8,这同样是可能的。但是它没有完成,现在就是这样。

看看这里的帮助:

字符串类型是零或多个有序序列的集合 16位无符号整数值(“元素”),最大长度为 253-1个要素。字符串类型通常用于表示文本 正在运行的ECMAScript程序中的数据,在这种情况下,每个元素 在字符串中,被视为UTF-16代码单位值

类似的情况也可以在中找到


为什么不使用8位无符号整数值?如果使用UTF-8,这同样是可能的。但它并没有完成,现在就是这样。

因为你不能用8位来表示很多字符。考虑UNICODE和不同的字符集。因为UNICODE字符是16位整数。仅仅因为你不能用8位来表示很多字符。考虑UNICODE和不同的字符集。因为UNICODE字符是16位整数。仅仅因为你不能用8位来表示很多字符。考虑UNICODE和不同的字符集。因为UNICODE字符是16位整数。仅仅因为你不能用8位来表示很多字符。想想UNICODE和不同的字符集。因为UNICODE字符是16位整数。谢谢,这意味着JavaScript字符串比C语言中的字符串需要更多的内存,对吗?@jain:是的,通常是这样。尽管没有什么能阻止引擎使用更高效的内存表示,但代价是更复杂的索引访问。但是请注意,C实际上没有字符串,它有
char[]
,您可以在JS中使用
Uint8Array
执行同样的操作。另外,C显然在存储Unicode字符方面更为有限(尽管JS仍然有限,并且需要使用代理项对来表示BMP之外的代码点),这意味着JavaScript字符串将比C语言中的字符串需要更多的内存,对吗?@jain:通常是这样。尽管没有什么能阻止引擎使用更高效的内存表示,但代价是更复杂的索引访问。但是请注意,C实际上没有字符串,它有
char[]
,您可以在JS中使用
Uint8Array
执行同样的操作。另外,C显然在存储Unicode字符方面更为有限(尽管JS仍然有限,并且需要使用代理项对来表示BMP之外的代码点),这意味着JavaScript字符串将比C语言中的字符串需要更多的内存,对吗?@jain:通常是这样。尽管没有什么能阻止引擎使用更高效的内存表示,但代价是更复杂的索引访问。但是请注意,C实际上没有字符串,它有
char[]