由于某种原因,JavaScript 全局变量在函数内部变得未定义。不明白为什么。您可以复制并运行代码。正如您所看到的,全局变量“target”在第一个警报中定义,但随后在函数内变为未定义。
这是代码:
<!doctype html>
<html>
<head>
<title>Colors</title>
</head>
<body onload="do_game()">
<script>
var target;
var guess_input;
var finished = false;
var guesses = 0;
var colors = ['blue','brown','gold','gray','green','orange','pink','purple','red','yellow'];
function do_game() {
var random_number = Math.random() * 10;
var index = Math.floor(random_number);
var target = colors[index];
alert("target = " + target);
while (!finished) {
guess_input = prompt("I am thinking of one those colors:\n\n"+ colors +
"\n\nWhat color am I thinking of?").toLowerCase();
guesses += 1;
finished = check_guess();
}
}
function check_guess() {
alert('guess_input=' + guess_input +', target=' + target);
return true;
}
</script>
</body>
</html>
您在函数内再次声明变量。var target = colors[index];
。如果你想分配colors[index]
向全球target
那么不要使用var
,否则它将被分配给函数内的局部变量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)