2014-02-20 140 views
0

工作,我寫了這個代碼,但只有第一個條件是工作:如果其他條件沒有在Javascript

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

如何輸入無限? – elclanrs

+0

@elclanrs well'Infinity'== Infinity是真的,因爲有強制發生 – axelduch

+0

如果這是OP的用例,它看起來很混亂,你會比較一個字符串。 – elclanrs

回答

1

您可以在Javascript中使用關鍵字throw將新的exceptions拋出(參見下面的示例)。

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); 
} 
+0

太棒了!現在功能:) – user3287550