为什么在输入不一致的数字后,alert()会返回undefined?

时间:2015-02-14 05:36:57

标签: javascript undefined alert

function seclar(){
    var x=123456789, largest, secondlargest;

    largest=parseInt(prompt("Enter a number", ""));

    while(x != 0){
        x=parseInt(prompt("Enter a number", ""));

        if(x>=largest){
            secondlargest=largest;
            largest=x;
        }

        else if(x>=secondlargest && x!=largest){
            secondlargest=x;

        }
    }
    alert("Second largest is " + secondlargest);
}
当输入不同数字位数时,

警告返回undefined。请帮忙。

1 个答案:

答案 0 :(得分:0)

如果您输入的x小于先前输入的largest,则您的代码会尝试进行以下比较:

x >= secondlargest && x != largest

虽然尚未为secondlargest分配任何值,但它为undefined。因此,比较x >= secondlargest将是false

因此,当您最终转到alert语句时,secondlargest仍未分配任何值。