Compare if variable is number inside an if

3

Having

var chute = Math.round(parseInt(prompt("Adivinhe em qual número estou pensando")));
var numeroPensado = Math.round(Math.random() * 100);

if(chute != numeroPensado){
    document.write("Que pena, você errou, o número em que eu pensei era " + numeroPensado);
}else if(chute == numeroPensado){
    document.write("Parabéns, você acertou !");
}else{
    document.write("Ops! Devido a algum erro, não pude receber seus dados, certifique-se de colocar números, de preferência, inteiros")
}

If the user types a text, it enters the first condition, but would like it to enter else . I tried to use something like chute = typeof 1 within if , but it did not work.

    
asked by anonymous 24.11.2016 / 14:14

4 answers

1

This only solves:

var chute = Math.round(parseInt(prompt("Adivinhe em qual número estou pensando")));
var numeroPensado = Math.round(Math.random() * 100);

if(chute != numeroPensado && !isNaN(chute)){
    document.write("Que pena, você errou, o número em que eu pensei era " + numeroPensado);
}else if(chute == numeroPensado && !isNaN(chute)){
    document.write("Parabéns, você acertou !");
}else{
    document.write("Ops! Devido a algum erro, não pude receber seus dados, certifique-se de colocar números, de preferência, inteiros")
}
    
24.11.2016 / 14:31
4

You can use the Javascript isNaN function: link

isNaN(123) //false
isNaN(-1.23) //false
isNaN(5-2) //false
isNaN(0) //false
isNaN('123') //false
isNaN('Hello') //true
isNaN('2005/12/12') //true
isNaN('') //false
isNaN(true) //false
isNaN(undefined) //true
isNaN('NaN') //true
isNaN(NaN) //true
isNaN(0 / 0) //true
    
24.11.2016 / 14:18
4

First, a if that tests whether something is equal and has else if if it is different, there is no way to have a third option, or it is the same or different, then else would never run. Anyway it is good to sepra what is data entry validation and what is "business" decision.

Second, to check if something typed is a number you have to do this by explicitly checking, with isNaN() :

var chute = Math.round(parseInt(prompt("Adivinhe em qual número estou pensando")));
if (!isNaN(chute)) {
    document.write("Ops! Devido a algum erro, não pude receber seus dados, certifique-se de colocar números, de preferência, inteiros")
}
var numeroPensado = Math.round(Math.random() * 100);

if (chute != numeroPensado){
    document.write("Que pena, você errou, o número em que eu pensei era " + numeroPensado);
} else {
    document.write("Parabéns, você acertou !");
}
    
24.11.2016 / 14:19
1
var chute = Math.round(parseInt(prompt("Adivinhe em qual número estou pensando")));
var numeroPensado = Math.round(Math.random() * 100);

if(chute != numeroPensado && !isNaN(chute)){
    document.write("Que pena, você errou, o número em que eu pensei era " + numeroPensado);
}else if(chute == numeroPensado){
    document.write("Parabéns, você acertou !");
}else{
    document.write("Ops! Devido a algum erro, não pude receber seus dados, certifique-se de colocar números, de preferência, inteiros")
}

Check if it is not a Number. N um N umber.

isNan()
    
24.11.2016 / 14:20