Comparer le type des éléments

Position temporelleDurée

Objectifs

  • Comprendre la différence entre comparaison simple et comparaison stricte ;

  • Savoir utiliser les comparaisons strictes.

Mise en situation

Lorsque l'on compare des éléments entre eux, le résultat dépend non seulement de leur valeur mais également de leur type.

RappelType

Le type d'un élément est en quelque sorte sa nature : il peut être un nombre (entier, décimal, etc.), un caractère, une phrase, etc.

Le type est en partie identifiable selon la notation utilisée :

  • On met des apostrophes pour les caractères mais rien pour les nombres.

  • Les nombres décimaux possèdent un point et pas les entiers.

Comparaison de type

Même si les opérateurs de comparaison sont parfois identiques dans les langages, la comparaison n'est pas toujours exactement la même.

En Python, les éléments doivent avoir la même valeur et être de même type pour être égaux, alors qu'en JavaScript il existe des opérateurs spéciaux permettant d'indiquer que la comparaison est stricte, c'est à dire qu'elle doit prendre en compte le type des opérandes.

Exemple

La deuxième ligne montre la différence entre le JavaScript et le Python. Pour le JavaScript, seule la valeur est importante : que l'opérande soit une chaîne de caractères ou un nombre ne fait pas de différence. En revanche pour le Python, même si les valeurs sont équivalentes, un nombre et une chaîne ne sont pas égaux.

1
/** JavaScript : affiche true et true */
2
console.log(91 == 91)
3
console.log('91' == 91)
1
"""Python : affiche true et false."""
2
print(91 == 91)
3
print('91' == 91)

MéthodeÉgalité stricte

Pour JavaScript, qui différencie l'égalité de l'égalité stricte, l'opérateur d'égalité stricte est === et signifie « est égal et de même type que ».

1
/** JavaScript: affiche true et false */
2
console.log('7' == 7)
3
console.log('7' === 7)

MéthodeInégalité stricte

De même, l'inégalité stricte existe et se note !==, autrement dit « est de type et/ou de valeur différent de ».

1
/** JavaScript: affiche false et true */
2
console.log('7' != 7)
3
console.log('7' !== 7)

Attention

Les comparaisons strictes sont à préférer dans un code en JavaScript : leur utilisation fait partie des bonnes pratiques.

À retenir

Les langages ne gèrent pas les comparaisons de la même manière et il faut faire attention au type des opérandes.

Position temporelleDurée