在JS中比较两个数的大小 字符串进行比较 出现的坑
一种是字符串进行比较
var t='2'; var k='9'; var q= t>k; console.log(q); 结果为false var t1='12'; var k1='9'; var q1= t1>k1; console.log(q1); 结果为false
一种是整数进行比较
var t=2; var k=9; var q= t>k; console.log(q); 结果为false var t1=12; var k1=9; var q1= t1>k1; console.log(q1); 结果为true
总结
大家都看出不同了把
那么是什么原因呢
在 JavaScript 中,字符串之间的比较是基于它们的 Unicode 字符编码值进行的,而不是它们代表的数字值。
在 Unicode 中,数字字符的编码值是按照字符的顺序排列的。
所以,当你比较 '12'
和 '9'
时,实际上是比较字符 '1'
和字符 '9'
的 Unicode 编码值,而字符 '1'
的编码值大于字符 '9'
,因此表达式 t1>k1
的结果是 false
。