let errors = false;
// Check for errors in any single payload
for (let result of results) if (result.status === "error") {
errors = true;
errorMessage = result.message;
console.log(errors) // logs out "true"
} else {
errors = false;
}
console.log(errors) // logs out "false"
// If error exists, alert user
if (errors === true) {
console.log(errors);
alert('Error Requesting Monitor Data!\n'+errorMessage)
} else {
console.log(errors); // logs out "false"
}
來自Python/Scala的JavaScript新手。在上面的代碼中,for循環範圍之外的錯誤永遠不會修改爲true
。我不瞭解變量的範圍和價值的修改?Javascript變量不變
只有當result.status ===「error」爲「true」時,它纔會被設置爲「true」。是這樣嗎? –
@FelixKling是的,我在控制檯中看到以下內容:x3爲true,然後從第二個條件爲false。 –
適合我:https://jsfiddle.net/8hhytjbf/。如果你的實際代碼是這樣的(並且定義了所有變量),那麼它將按預期工作。它當然不是一個範圍問題。 –