我编写了这段代码,但只有第一个条件正在运行:
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
}
为什么其他条件(-Infinity
,undefined
,isNaN
)不起作用?
答案 0 :(得分:1)
您可以使用exceptions关键字在Javascript中投放新的throw(请参阅下面的示例)。
isNaN是一个函数
要检查数字的有效性,请使用:
Number.NEGATIVE_INFINITY
或Number.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);
}