【发布时间】:2017-09-18 22:28:17
【问题描述】:
为什么'Mystery!' <= 'Z' 等于true 但'the' <= 'Z' 等于false 但两者都有
'Mystery!' >= 'A' 和 'the' >= 'A' 等于 true。这种比较是如何进行的?
【问题讨论】:
-
因为
'B' < 'a'。字符通常(在大多数系统上)按以下顺序排列:..., A, B, ..., Z, ... , a, b, c, ... -
这取决于字符的代码。事实上,比较的是符号的代码。
-
比较两个操作数的小写版本。
-
@kindUser 只是关闭它,甚至没有阅读重复的候选人。多么典型。
-
@ibrahimmahrir “在大多数系统上”部分具有误导性。 JavaScript 总是对字符串使用 Unicode 字符集的 UTF-16 编码。 locale 可能因来源、用户和时间而异,但二进制比较运算符始终使用 UTF-16 字典顺序。
标签: javascript