我是编码的新手,最近开始学习JavaScript。我不明白为什么以下代码会导致无限循环。为什么birthday(myAge)
函数在循环中不起作用以使条件(myAge < 23)
为假?
var myAge = 22
var birthday = function(myAge){
return(myAge + 1);
}
while (myAge < 23){
console.log("You're only 22");
birthday(myAge)
}
最佳答案
因为您没有以任何方式修改myAge
。您的函数只是返回myAge + 1
。
尝试将返回值分配回myAge
:
while (myAge < 23){
console.log("You're only 22");
myAge = birthday(myAge);
}
或者,如果删除函数参数,则函数内的名称
myAge
将引用全局变量,您可以直接对其进行修改:var myAge = 22
var birthday = function(){
return (myAge = myAge + 1);
// or return myAge += 1;
// or return ++myAge;
}
while (myAge < 23){
console.log("You're only 22");
birthday(); // note, no need to pass any parameters
}