1、JS 中,'a' 在内存中占2个字节还是1个字节?JS 是用 UCS-2 编码,应该占 2 个字节吧?
2、在不同的引擎中,JS 字符串在编码都是一样的吗?
3、JS 中,字符串在内存中怎样表示“结尾“,是不是也加上一个 \0
?
1、JS 中,'a' 在内存中占2个字节还是1个字节?JS 是用 UCS-2 编码,应该占 2 个字节吧?
2、在不同的引擎中,JS 字符串在编码都是一样的吗?
3、JS 中,字符串在内存中怎样表示“结尾“,是不是也加上一个 \0
?
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答872 阅读✓ 已解决
6 回答1k 阅读
2 回答1.3k 阅读✓ 已解决
我来回答一下我知道的:
1) a字母(英语第一个小写的那个)占用两个字节,JS用的为UCS-2,不过后来又兼容了UTF16.
但是有一些生僻字就不一定为 2 个字节长度了,可能是多个。相关知识可以找一下 阮一峰的 字符串知识讲解,也建议看
一下维基的相关条目并参阅其底下的参考链接(主要是标准化组织的文档).
2) 编码是ECMA规定的,都是一样的,作为脚本语言,他的编码都是被ECMA这份文档所确定了。
3) 这个和引擎相关。
可以参考这个问题的回复
https://www.zhihu.com/questio...