2013-01-15 7 views
0

Dans la fonction javascript simple. Les deux valeurs, min_chk et max_chk sont vraies, mais la fonction if affiche toujours l'alerte. pas en mesure de comprendre pourquoi?javascript true et true renvoyant false dans if statement?

function Checkit(m,n){ 
return m>n; 
} 

var min_chk = Checkit(a,X); 
var max_chk = Checkit(b,Y); 
if ((min_chk === 'true') && (max_chk === 'true')){ 
... 
    } else { 
    alert('invalid range'); 
} 

Répondre

3

L'opérateur retourne ===false si les opérandes des deux côtés ont différents types. Le booléen true et la chaîne "true" ont des types différents.

Vous devez changer votre chèque juste

if (min_chk && max_chk) 

Depuis min_chk et max_chk sont déjà booléens, vous n'avez pas besoin de les comparer directement avec true.

3

Le true booléen est pas la même que la chaîne 'true'. Enlever les citations.

+0

Ou encore mieux, se débarrasser de '=== true' tout à fait. Ce n'est pas nécessaire. –

+0

Ceci est vrai. Puisque la valeur de retour de 'CheckIt' est connue, une comparaison stricte est inutile. –

+0

merci Peter, thx Kolink. – rajeev

1

Débarrassez-vous de la « » autour de vrai

function Checkit(m, n) { 
    return m > n; 
} 

var min_chk = Checkit(a, X); 
var max_chk = Checkit(b, Y); 
if ((min_chk === true) && (max_chk === true)) {... 
} else { 
    alert('invalid range'); 
} 
Questions connexes