<script language="javascript">
function pp()
{
var num=dg();
alert(num);
}function dg(){
var num=Math.floor(Math.random()*100);
if (num>47 && num<58)
{
alert(num);
return num;
}
else
{
dg();
}
}</script><input type="button" onclick="pp()" value="button" />
很简单的一段代码,为什么有时候出现两次数字,有时候出现一次,第二次就是undifined?
不明真相。
求解。
function pp()
{
var num=dg();
alert(num);
}function dg(){
var num=Math.floor(Math.random()*100);
if (num>47 && num<58)
{
alert(num);
return num;
}
else
{
dg();
}
}</script><input type="button" onclick="pp()" value="button" />
很简单的一段代码,为什么有时候出现两次数字,有时候出现一次,第二次就是undifined?
不明真相。
求解。
为假时没有返回值。
因此,为假时 pp方法里的 num就是 undefined
dg里递归假设第1次为假 则进行递归 第2次为真 则alert(num) 然后将第1次的dg返回 执行pp里的alert 所以就是你说的第1次alert有数字 第2次 undefined
<script language="javascript">
function pp(){
var num=dg(); alert('第二次dg():'+num);
}function dg(){
var num=Math.floor(Math.random()*100);
if (num>47 && num<58){
alert('第一次:'+num);
return num;
}
else{return dg();}
}
pp()
</script>