Javascript 为什么“a”>“a”是真的?

Javascript 为什么“a”>“a”是真的?,javascript,string,ascii,string-comparison,Javascript,String,Ascii,String Comparison,我正在学习一门关于运算符的课程,在一次练习中,这个例子指出'a'>'a'==true。它没有解释为什么这是真的。我试着自己做了一些研究,并认为这可能与词典编纂顺序有关,但这似乎并不正确。我还检查了它是否与ASCII和Unicode字母表上的位置有关,但情况似乎并非如此。有人能解释为什么在JavaScript中小写字母“a”大于大写字母“a”吗 因为a大于a in和低端UTF8 console.loga>A是,A>A,因为A是,A.charCodeAt0,而A是,A.charCodeAt0因为A是

我正在学习一门关于运算符的课程,在一次练习中,这个例子指出'a'>'a'==true。它没有解释为什么这是真的。我试着自己做了一些研究,并认为这可能与词典编纂顺序有关,但这似乎并不正确。我还检查了它是否与ASCII和Unicode字母表上的位置有关,但情况似乎并非如此。有人能解释为什么在JavaScript中小写字母“a”大于大写字母“a”吗

因为a大于a in和低端UTF8 console.loga>A是,A>A,因为A是,A.charCodeAt0,而A是,A.charCodeAt0因为A是,而A是,并且低端UTF8 console.loga>A是,A>A,因为A是,A.charCodeAt0,A是,A.charCodeAt0这是因为A的值大于A: console.log'a'.charCodeAt0//97 console.log'A'.charCodeAt0//65 console.log97>65//true这是因为a的值大于a: console.log'a'.charCodeAt0//97 console.log'A'.charCodeAt0//65
console.log97>65//true您可以在下面的ascii表中看到每个字符的值

a=97

A=65

所以“a”大于“a”


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

a=97

A=65

所以“a”大于“a”


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

例如PowerShell

[char]'a' -gt [char]'A'
我们可以将字母强制转换为char而不是string,比较将检查它们的基础Unicode值


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

大多数语言将有效地执行相同的操作:

例如PowerShell

[char]'a' -gt [char]'A'
我们可以将字母强制转换为char而不是string,比较将检查它们的基础Unicode值


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

'a'==97,'a'=65+一般的,特别是UTF-16代码单元的字典顺序是毫无意义的,除非这是一个明显的错误。也许问题应该是,你为什么在乎?对你来说不是更有用吗?请记住,对ASCII的引用是指人们试图通过将它与你可能已经知道的内容联系起来来教你一些东西。JavaScript与ASCII无关;对于字符串,它使用Unicode字符集的UTF-16字符编码,就像Java、.NET、VB4/5/6、VBA等…。在某种意义上,您可能已经知道了这一点,因为像“a”==97这样的字符,“a”=65+一般的字典顺序,特别是UTF-16代码单元的字典顺序是非常没有意义的,除非这是一个明显的错误。也许问题应该是,你为什么在乎?对你来说不是更有用吗?请记住,对ASCII的引用是指人们试图通过将它与你可能已经知道的内容联系起来来教你一些东西。JavaScript与ASCII无关;对于字符串,它使用Unicode字符集的UTF-16字符编码,就像Java、.NET、VB4/5/6、VBA等…。在某种意义上,你可能已经知道这一点,因为像《打败你》这样的角色:@mplungjan,是的。。。当然。比你先说:@mplungjan,是的。。。当然,这不是语言,而是Ascii/UTF8字符代码。这不是语言,而是Ascii/UTF8字符代码。谢谢,我把数字倒序了。我认为数字越低,排列顺序越高,即65接近1,则“A”比97的“A”大。谢谢你的解释。谢谢,我把电话号码倒过来了。我认为数字越低,排列顺序越高,即65接近1,则“A”比97的“A”大。谢谢你的解释。