我是编码新手,最近开始学习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)
}
答案 0 :(得分:7)
因为您没有以任何方式修改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
}
答案 1 :(得分:2)
你需要以某种方式增加myAge,否则你将永远22岁......虽然这不是一件坏事。我想你发现了青春的泉源。
return (myAge += 1)