2016-07-05 18 views
0

奇妙なJavaScriptの比較演算子

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>

なぜこのfalseはありますか?私は文字列を数値にキャストしたので。両方の変数にtypeofを実行しようとすると、両方とも正しいデータ型が表示されます。

+2

なぜ必要があります ' '3 +接頭インクリメント演算子を欠場します'== $('#quiz .question ')。length + 1'は本当ですか? '$( '#quiz .question')。length + 1'が3であっても、結果は' '3 '!= 3' – choz

+1

なので' 3 == 4'は 'false'なので? '+ quiz_progress = 3'の間は –

+1

'$( '#クイズ.question')。長さ+ 1 = 4'です。この2つの値はどのように同じになりますか? – currarpickt

答えて

4

3は、あなたがそう、3つの.question divを持っている4.等しい場合はチェックしているので:

$('#quiz .question').length + 1 ==> 4 
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 
+0

私は彼が1 +を追加することによってintにintを変更したいと思う+増加しない – guradio

+0

私は思う、OPはquiz_progressが1を増やすことを期待する。 –