Javascript变量不变

时间:2017-07-06 14:16:54

标签: javascript ecmascript-6

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。我不了解变量的范围和值的修改?

1 个答案:

答案 0 :(得分:3)

你的循环在很大程度上是无关紧要的。

由于您在循环的errors = false部分设置了else,因此您实际上是在检查您测试的 last 是否为错误。

您完成循环并每次将结果翻转为truefalse。它最终会有一个描述最后一件事的值。

如果您的目标是测试集合中的“一个或多个”是否有错误,那么您需要删除其他分支

这样它就会以false开头,如果有错误可能会转到true,但永远不会被翻转。