gpt4 book ai didi

javascript - 从函数返回并重新声明变量

转载 作者:行者123 更新时间:2023-11-28 20:57:44 25 4
gpt4 key购买 nike

在为我的入门编程课做作业时,我创建了一个函数,并在一些人的帮助下一切都正常工作(顺便说一句,非常感谢),现在我遇到了一个新问题。我有两个变量,在启动函数之前声明并提示输入值,如果未通过,则提示输入新值。但现在当我返回它们时,它不会更改代码之外的变量。

// 1 Declare Variables
var numTrees;
var counter = 0;
var answer = "no";

function treeFunction(answer, counter, numTrees) {
while (answer == "no" && counter < 3)
{
if (numTrees < 5 || numTrees > 10)
{
alert("That is an incorrect value.\nThe sample size should be less than 5 or greater than 10.\nPlease try again.");
answer = "no";
numTrees = prompt("Please reenter the amount of trees in your sample.");
alert("You have entered: " + numTrees)
counter + 1;
}
else
{
answer = "yes";
}
}
if (answer == "no") {
alert("You have entered an incorrect number too many times.\nThe Program will now end.");
window.open('', '_self', '');
window.close();
} else if (answer == "yes") {
return numTrees;
}
}
// 2 Prompt the Instructor for the number of Trees
numTrees = prompt("How many trees are in your sample?");
alert("You have entered: " + numTrees);
treeFunction(answer, counter, numTrees)
document.write(numTrees);
document.write("<br/>")
document.write("<br/> <br/>" + "End of Program.");

编辑:我改变了我正在做的事情,我不再需要返回两个变量,只返回 numTrees。然而,由于某种原因, document.write 显示原始值,而不是在返回后在函数中更改为的值。

最佳答案

answer、counter、numTrees 是全局的,但是当您将它们作为参数传递给函数时;

function treeFunction(answer, counter, numTrees) {

您将获得一组新的局部变量,它们恰好与全局变量同名,因此隐藏它们。

要使用全局变量,请勿传递它们

function treeFunction() {
answer = ....

(您还希望 counter += 1 实际递增变量)

关于javascript - 从函数返回并重新声明变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11763322/

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