If-else条件在Javascript中不起作用

时间:2014-02-20 08:37:33

标签: javascript if-statement textbox nan

我编写了这段代码,但只有第一个条件正在运行:

if(document.getElementById('v').value == Infinity) {
    //alert
}
else if(document.getElementById('v').value == -Infinity) {
    //alert
}       
else if(document.getElementById('v').value == undefined) {
    //alert
} 
else if(document.getElementById('v').value == isNaN) {
    //alert
}

为什么其他条件(-InfinityundefinedisNaN)不起作用?

1 个答案:

答案 0 :(得分:1)

您可以使用exceptions关键字在Javascript中投放新的throw(请参阅下面的示例)。

  

isNaN是一个函数

     

要检查数字的有效性,请使用:Number.NEGATIVE_INFINITYNumber.POSITIVE_INFINITY

换句话说:

if (typeof document.getElementById('v') === 'undefined' ||
    document.getElementById('v').length === 0)
  throw new TypeError("Undefined value");
else if(parseInt(document.getElementById('v').value, 10) == Number.POSITIVE_INFINITY)
  throw new RangeError("Value is too big");
else if(isNaN(document.getElementById('v').value))
  throw new TypeError("Value must be a valid number");

您可以获取以下例外情况:

try {
 // call your checkup function here
} catch (exception) {
 alert ("Oh bad... Exception detected: " + exception);
}