let valid = true;
let x = prompt("Введите x", "");
if (x == null || x == "") {
alert("Вы не ввели x");
valid = false;
}
if (valid == true) {
let n = prompt("Введите n", "");
if (n == null || n == "") {
alert("Вы не ввели n");
valid = false;
}
alert("n = " + n);
alert(valid);
}
function pow(x, n) {
let poweredNumber = 1;
for (let i = 0; i < n; i++) {
poweredNumber *= x;
}
return poweredNumber;
}
alert("Перед if");
if (valid == true) {
alert("В if");
alert(pow(x, n)); //Почему-то не срабатывает
}
alert("После if"); //Почему-то не срабатывает
我用注释标记的部分不起作用。但只有当你声明一个有效的变量并写下前两个 if 时,它才起作用。如果没有有效且前两个 if 的,那么一切正常。事实上,一切都应该工作,但有些事情是不对的......
该变量是
n用 声明的let,所以它只在块内可见if。因此,调用
alert(pow(x, n))失败,因为没有变量n。要解决它,只需
n从中删除声明if,或将其替换let为var