由于某种原因,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
,否则它将分配给函数内的局部变量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句