2014-02-20 5 views
0

Я написал этот код, но только первое условие работает:Если-ELSE условия не работает в 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 
} 

Почему не другие условия (-Infinity, undefined, isNaN) работать?

+1

Как вы можете ввести бесконечность? – elclanrs

+0

@elclanrs well 'Infinity' == Infinity истинна, потому что происходит принуждение – axelduch

+0

Если это случай использования OP, это выглядит запутанным, вы бы сравнили его с строкой. – elclanrs

ответ

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

отлично! Теперь функция :) – user3287550

Смежные вопросы