我在内存中存储一个非常大(> 1MB)的位掩码作为字符串,并且很好奇JS如何在内部存储字符串。基于
的事实,我有这种感觉String.fromCharCode( 65535 ).charCodeAt( 0 ) === 65535
,所有字符串都是unicode,但我不确定。基本上我试图找出在内存使用方面,对于16位字符而不是8位字符的位掩码是否更有效?
答案 0 :(得分:1)
检查出来:
https://developer.mozilla.org/en-US/docs/Mozilla_internal_string_guide#IDL_String_types
我认为它非常依赖于浏览器,但是Mozilla文档揭示了它们如何在内部为JS字符串做的。
简短的回答是他们使用UTF-16
答案 1 :(得分:0)
查看此讨论。
JavaScript strings - UTF-16 vs UCS-2?
简而言之,仅仅因为一些Javascript引擎使用16位编码并不能使其成为UTF16。边缘情况代理对在两者之间的处理方式不同。