2017-03-07 11 views
1

つまり、なぜアラートが表示されないのですか?Javascriptで同じif文の変数を割り当ててチェックできないのはなぜですか?

var x; 
if (x = 1 && x > 0) { 
    alert(x); 
} 

私が理解する限り、x = 1はxに1を代入し、1を返します。x> 0チェックは失敗しています。どうして?

+1

'X == 1 '私は*以下の回答に加えて –

+1

、また*はちょうどそれをしないと思います。それは醜いです。 –

答えて

4

実際には、&&操作が割り当てより優先されます。

xは、1 && x > 0の結果です。falseです。

var x; 
 
if (x = 1 && x > 0) { 
 
    alert(x); 
 
} 
 
console.log(x); // false

あなたがas shown by Nina Scholz、括弧を使用して演算の順序を強制することができます。

+1

明確で簡潔な、ありがとう! –

2

進行中の式から割り当てを分離するには、いくつかの括弧が必要です。

var x; 
 
if ((x = 1) && x > 0) { 
 
    alert(x); 
 
}

関連する問題