比较javascript中的数字

时间:2012-10-29 18:01:02

标签: javascript

所以这是我的代码:

var score1 = $(this).attr('data-score1');
var score2 = $(this).attr('data-score2');

if (score1 < score2) {
  // do some
}
if (score2 > score1) {
  // do something else
}

现在,只要两个变量都是&lt;或两者&gt; 100,但是当这些变量中的任何一个大于100而另一个不是错误的if语句被触发时。这到底怎么回事? 谢谢你的建议!

2 个答案:

答案 0 :(得分:7)

使用parseInt()

属性会抛出字符串..所以当你尝试比较它们时......你实际上在比较

"100" > "90"而不是100 > 90 ..将 parseInt()基数一起使用可以解决您的问题..

var score1 = parseInt( $(this).attr('data-score1') , 10);
var score2 = parseInt( $(this).attr('data-score2') , 10);

if (score1 < score2) {
  // do some
}
else if (score2 > score1) {
  // do something else
}

正如@naveen建议你也可以这样做

var score1 = +$(this).attr('data-score1');
var score2 = +$(this).attr('data-score2');

答案 1 :(得分:3)

您将这些值作为字符串进行比较。字符串“90”以9开头,其ascii代码大于1的代码。

您可以使用parseInt

将其转换为数字
parseInt(score1, 10)