gpt4 book ai didi

JavaScript 全局变量在函数内部变为未定义

转载 作者:行者123 更新时间:2023-11-30 07:58:47 25 4
gpt4 key购买 nike

由于某种原因,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,否则它会被赋值给一个局部变量在函数内部。

关于JavaScript 全局变量在函数内部变为未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33313824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com