JS每个字符总是使用两个字节来存储字符串吗?

Mar*_*ahn 8 javascript performance memory-management

我在内存中存储一​​个非常大(> 1MB)的位掩码作为字符串,并且很好奇JS如何在内部存储字符串.我有这种感觉,基于这样的事实

String.fromCharCode( 65535 ).charCodeAt( 0 ) === 65535
Run Code Online (Sandbox Code Playgroud)

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

Dan*_*ams 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