gui*_*mus 0 javascript scope function while-loop
我不明白这段代码.
var timesTable;
while ((timesTable = prompt("Enter the times table", -1)) != -1) {.....}
Run Code Online (Sandbox Code Playgroud)
为什么有必要在之前声明变量?我试着这样做:
while ((var timesTable = prompt("Enter the times table", -1)) != -1) {.....}
Run Code Online (Sandbox Code Playgroud)
但它不起作用.有什么问题?是关于范围的吗?
完整的计划是:
function writeTimesTable(timesTable, timesByStart, timesByEnd) {
for (; timesByStart <= timesByEnd; timesByStart++) {
document.write(timesTable + " * " + timesByStart + " = " + timesByStart * timesTable + "<br />");
}
}
var timesTable;
while ((timesTable = prompt("Enter the times table", -1)) != -1) {
while (isNaN(timesTable) == true) {
timesTable = prompt(timesTable + " is not a " + "valid number, please retry", -1);
}
document.write("<br />The " + timesTable + " times table<br />");
writeTimesTable(timesTable, 1, 12);
}
Run Code Online (Sandbox Code Playgroud)
谢谢你提前.
你不能在while循环中定义变量,javascript中没有这样的构造;
您可以在for循环中定义它的原因是因为for循环定义了初始化构造.
for (var i = 0; i < l; i++) { ... }
// | | |
// initialisation | |
// condition |
// execute after each loop
Run Code Online (Sandbox Code Playgroud)
基本上,它不起作用,因为它是无效的代码.
但是,您可以var完全删除声明,但这基本上会使变量成为global错误的做法.
这就是你var在while循环上方直接看到声明的原因