8

我在内存中将一个非常大(>1MB)的位掩码作为字符串存储,并且对 JS 如何在内部存储字符串感到好奇。我有一种感觉,基于以下事实

String.fromCharCode( 65535 ).charCodeAt( 0 ) === 65535

,所有字符串都是unicode,但我不确定。基本上,我试图找出在内存使用方面,对 16 位字符的位掩码是否比 8 位字符更有效?

4

2 回答 2

1

看一下这个:

https://developer.mozilla.org/en-US/docs/Mozilla_internal_string_guide#IDL_String_types

我相信它非常依赖于浏览器,但 Mozilla 文档揭示了他们如何在内部为 JS 字符串执行此操作。

简短的回答是他们使用 UTF-16

http://en.wikipedia.org/wiki/UTF-16

于 2013-03-06T23:13:42.473 回答
0

看看这个讨论。

JavaScript 字符串 - UTF-16 与 UCS-2?

简而言之,仅仅因为某些 Javascript 引擎使用 16 位编码并不能使其成为 UTF16。边缘情况代理对在两者之间的处理方式大不相同。

于 2013-03-07T00:26:33.857 回答