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"
}
JavaScriptが新しく、Python/Scalaから来ました。上記のコードでは、forループスコープ外のエラーは決してtrue
に変更されます。変数の範囲と値の変更について、私は何を理解していませんか?JavaScriptの変数は変更されていません。
'result.status ===" error "'が 'true'の場合にのみ' true'に設定されます。それは事実ですか? –
@FelixKlingはい、コンソールで次のように表示されます:x3 true、2番目の条件からfalseです。 –
私のためにうまく動作:https://jsfiddle.net/8hhytjbf/。実際のコードがこのようなものであれば(そしてすべての変数が定義されていれば)、それは期待どおりに動作します。それは確かに範囲の問題ではないようです。 –