为什么“ a”>“ A”为真?

时间:2018-06-22 14:19:51

标签: javascript string ascii string-comparison

我正在上一门关于操作员的课程,在一次练习中,此示例显示了'a'>'A'=== true。它没有解释为什么它是真的。我尝试自己进行一些研究,并认为这可能与词典顺序有关,但这似乎并不正确。我还检查了它是否与ASCII和Unicode字母上的位置有关,但这似乎也不是。有人可以解释为什么JavaScript中的小写字母“ a”大于大写字母“ A”吗?

4 个答案:

答案 0 :(得分:9)

因为a IS比ASCII中的A和下端UTF8

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?

答案 1 :(得分:4)

您可以在下面的ascii表上查看每个字符的值

a = 97

A = 65

所以'a'比'A'

enter image description here

答案 2 :(得分:1)

这是因为a的{​​{3}}值比A大:

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

答案 3 :(得分:1)

大多数语言将有效地完成相同的事情:

例如PowerShell

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

我们可以将字母类型转换为char(不是字符串),比较将检查其基础Unicode值。

为什么我不确定这是为什么许多语言都将其作为默认行为。