首頁 > web前端 > js教程 > 主體

為什麼 JavaScript 字串「11」和「3」在字典比較中比較為 True?

Linda Hamilton
發布: 2024-10-18 12:36:03
原創
821 人瀏覽過

Why Do JavaScript Strings

字串的字典比較

給定程式碼片段中字串「11」和「3」之間的比較激發了人們的好奇心,因為真實的意外結果。一個簡單的假設可能是比較基於字串的長度,但事實並非如此。相反,JavaScript 字串按字典順序進行比較。

字典順序比較是透過比較表示字串中字元的 Unicode 代碼點序列來進行的。首先比較每個字串的第一個字元;如果這些字元相等,則繼續比較第二個字符,依此類推。當遇到具有不同代碼點的字元或其中一個字串用完字元時,比較停止。

對於“11”和“3”,第一個字元是“1”和“3” '。由於“1”的 Unicode 代碼點低於“3”,因此根據字典比較,“11”小於“3”。這解釋了令人驚訝的結果:較長的字串被認為小於較短的字串,因為它包含具有較低程式碼點的字元。

範例:

'11' < '3' // true
'31' < '3' // false
'31' < '32' // true
'31' < '30' // false
'abc' < 'aaa' // false
'abc' < 'abd' // true
登入後複製

將字串明確轉換為數字,使用一元加 ( ) 運算子:

 +'11' < '3' // false
登入後複製

以上是為什麼 JavaScript 字串「11」和「3」在字典比較中比較為 True?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板