[英]What does it mean that Array.prototype.sort “[compares] strings in UTF-16 code units order”?
我正在学习 Javascript 和https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort中的 Array.prototype.sort()没有传递comparaFunction参数,它会将值转换为字符串并以 UTF-16 代码单元顺序比较它们。
例如,
"2" > "15" => true
有人可以使用 UTF-16 代码单位向我解释这个陈述是如何正确的吗? UTF-8 代码单位是否不同? 我认为 UTF-X 只是编码器,并遵循 unicode - 代码单元(又名代码点)。 我的问题是为什么 MDN 说“UTF-16”?
字符串"2"
是以下字符代码序列:
50
字符串"15"
是:
49 53
比较字符串意味着顺序比较字符代码,当你得到第一个差异时停止(如果你到达两个字符串的末尾没有差异,则字符串相等)。 由于50 > 49
,我们在第一个字符处停止并返回该比较的结果。
这些字符在 UTF-16 中的代码与在 UTF-8 中的代码相同(对于所有基本的 ASCII 字符都是如此),因此这些编码系统之间的差异与本示例无关。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.