[英]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.