換句話說,爲什麼不顯示警報?爲什麼我不能分配,然後檢查在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'我覺得 –
除了下面的答案,也只是*不這樣做,*。它很醜。 –