つまり、なぜアラートが表示されないのですか?Javascriptで同じif文の変数を割り当ててチェックできないのはなぜですか?
var x;
if (x = 1 && x > 0) {
alert(x);
}
私が理解する限り、x = 1はxに1を代入し、1を返します。x> 0チェックは失敗しています。どうして?
つまり、なぜアラートが表示されないのですか?Javascriptで同じif文の変数を割り当ててチェックできないのはなぜですか?
var x;
if (x = 1 && x > 0) {
alert(x);
}
私が理解する限り、x = 1はxに1を代入し、1を返します。x> 0チェックは失敗しています。どうして?
実際には、&&
操作が割り当てより優先されます。
x
は、1 && x > 0
の結果です。false
です。
var x;
if (x = 1 && x > 0) {
alert(x);
}
console.log(x); // false
あなたがas shown by Nina Scholz、括弧を使用して演算の順序を強制することができます。
明確で簡潔な、ありがとう! –
進行中の式から割り当てを分離するには、いくつかの括弧が必要です。
var x;
if ((x = 1) && x > 0) {
alert(x);
}
'X == 1 '私は*以下の回答に加えて –
、また*はちょうどそれをしないと思います。それは醜いです。 –