为什么 'a' > 'A' 是真的?

Why is 'a' > 'A' true?

我正在上一门关于运算符的课程,在练习中出现了这个例子,说明 'a' > 'A' === true。它没有解释为什么它是真的。我尝试自己研究了一下,认为这可能与词典顺序有关,但这似乎不对。我还检查了它是否与 ASCII 和 Unicode 字母表上的位置有关,但似乎也不是这种情况。有人可以解释为什么 JavaScript 中的小写 'a' 大于大写 'A' 吗?

因为 aASCII 和低端 UTF8 中大于 A

console.log("a > A is","a">"A","because a is","a".charCodeAt(0),"and A is","A".charCodeAt(0))

相关:Is there any logic behind ASCII codes' ordering?

这是因为 aASCII 值大于 A

console.log('a'.charCodeAt(0)) // 97
console.log('A'.charCodeAt(0)) // 65
console.log(97 > 65)           // true

您可以在下面的 ascii table 中看到每个字符的值

一=97

A​​ = 65

所以 'a' 大于 'A'

大多数语言都能有效地完成同样的事情:

例如 PowerShell

[char]'a' -gt [char]'A'

我们可以将字母类型转换为 char(而非字符串),比较将检查它们的基础 Unicode 值。

为什么这么多语言将此作为默认行为我不太确定。