对于JS字符串的比较大小问题:如果比较的字符串位数一致,没有问题。但是如果比较的位数不一致,就会以位数的第一位开始比较!

let a = '62';
let b = '41';
console.log(a>b) // true;

let aa = '6';
let bb = '41';
console.log(aa>bb) // true;

let aaa = '62';
let bbb = '415';
console.log(aaa>bbb) // true;

例如:比较62和41的话62大于41,但要是比较6和41的话,6会大于41,这就会有问题。这种比较为ASCII码比较,依次取每个字符,字符转为ASCII码进行比较,ASCII码先大的即为大;因为第一个字符6比4大,所以后面就不用考虑了。

javascript字符比较 js比较字符串大小_javascript

因此对于JS字符串数值比较时,需转一下类型。可以使用parseFloat和parseInt函数转换后再比较,也可以直接使用parseFloat转换后比较

let a = '62';
let b = '41';
console.log(a>parseFloat(b)) // true;

let aa = '6';
let bb = '41';
console.log(aa>parseInt(parseFloat(bb))) // true;

let aaa = '62';
let bbb = '415';
console.log(aaa>parseFloat(bbb)) // true;