奇怪的JavaScript比较运算符

时间:2016-07-05 03:06:55

标签: javascript jquery



var quiz_progress = '3'

console.log(+quiz_progress)
console.log($('#quiz .question').length + 1)

console.log(+quiz_progress >= $('#quiz .question').length + 1)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="quiz">
  <div class="question">1</div>
  <div class="question">1</div>
  <div class="question">1</div>
</div>
&#13;
&#13;
&#13;

为什么这是false?因为我把字符串转换为数字。并尝试为两个变量执行typeof,两者都显示正确的数据类型。

2 个答案:

答案 0 :(得分:4)

因为你正在检查3是否等于4.你有3个.question div,所以:

$('#quiz .question').length + 1 ==> 4

答案 1 :(得分:0)

你错过+前缀增量运算符(++)

var quiz_progress = '3'

console.log(++quiz_progress) // 4
console.log($('#quiz .question').length + 1)

console.log(++quiz_progress >= $('#quiz .question').length + 1) // 5 >= 4