Exercice 1/16

Soit deux variables var1 et var2 déjà déclarées et qui contiennent une valeur.

Dans le fichier "script.js" :

  • vérifiez que var1 et var2 ont la même valeur et le même type;
  • affectez le résultat à test;
  • cliquez sur "Soumettre ma réponse".

Leçon 1/16

Jusqu'à maintenant vous avez appris à créer et manipuler des variables de plusieurs types mais les possibilités de vos scripts restent limitées.

Dans cette partie du cours, vous allez voir les conditions qui vont permettre d'introduire une certaine intelligence à vos scripts qui vont pouvoir se comporter de façon différente au regard de situations spécifiques que vous aurez prévues et anticipées.

Les conditions utilisent trois concepts dont un que vous connaissez déjà :

  • les booléens;
  • les opérateurs de comparaison;
  • les opérateurs logiques;

Une condition est donc un test qui permet de vérifier si une expression est vérifiée (true) ou pas (false). Vous connaissez déjà les booléens, dans cet exercice vous allez découvrir les opérateurs de comparaison et notamment les opérateurs d'égalité :

var test1 = 1 == "1";
var test2 = 1 === "1";

Dans le code ci-dessus, test1 vaut true et test2 vaut false.
Dans le premier cas == permet de vérifier si la valeur est la même, ce qui est vrai.
Dans le second cas === permet de vérifier si la valeur et le type sont identiques, ce qui est faux car il y a un nombre et une chaîne de caractère.
Le second opérateur est donc plus restrictif.

Remarque :

Dans la plupart des cas, utiliser l'égalité stricte === est plus sûre et aussi plus rapide pour Javascript. Avec == Javascript va d'abord essayer de convertir le type des variables avant de comparer leur valeur, comme avec 1 == "1".

Commentaires les mieux notés

75 Commentaires

  • rcolboc.dev-25

    rcolboc.dev-25

    En vrai var test = (var1 === var2) ? true:false; devrait marcher

    le 07/07/2022 à 16h06

  • meriam

    meriam Admin

    Pour vérifier que var1 et var2 ont la même valeur et le même type, il faut utiliser l'égalité stricte === (le retour est true si les deux variables ont le même type et même valeur, si non le résultat est false)

    le 07/07/2022 à 22h21

  • meriam

    meriam Admin

    il faut affecter le resultat final à la variable test (les parenthèses que vous avez ajouté est inutile.)

    le 07/07/2022 à 22h23

  • leocartrycarlier-82

    leocartrycarlier-82

    Ça prend du Sens aprés a mon avi

    le 11/01/2022 à 12h18

  • leocartrycarlier-82

    leocartrycarlier-82

    Ça prend du Sens aprés a mon avi

    le 11/01/2022 à 12h18

  • aigles2023-38

    aigles2023-38

    Bonjour, vous devrez revoir votre question. Vous dites de vérifier que var1 et var2 ont la même valeur et le même type!!! Alors lorsque vous utiliser "===", cela renvoie "false" car var1 = 42 et var2 ="42" sont différents en sachant que "'===' voudrait dire: Contenu et type égale à", pour obtenir la bonne réponse true, il faudrair alors convertir test dans alert comme ceci: alert(!test),

    le 12/09/2021 à 08h40

  • meriam

    meriam Admin

    Bonjour, l'énoncé demande de tester que var1 et var2 ont le même type et la même valeur et bien sûr le resultat est false.

    le 13/09/2021 à 10h05

  • celine.ducamin-87

    celine.ducamin-87

    la bonne reponse après plusieurs essais et recherche dans les commentaires (attention aux ; qui peuvent créer des boucles infinies): var var1 = 42; var var2 = "42"; var test = var1===var2 alert(test);

    le 05/08/2021 à 14h19

  • celine.ducamin-87

    celine.ducamin-87

    la bonne reponse après plusieurs essais et recherche d

    le 05/08/2021 à 14h15

  • cyril_hoareau-99

    cyril_hoareau-99

    Mouai, j'arrive vraiment pas se Javascript, j'y vois aucun intérêt, je réussi les exercices sans comprendre comment sa fonctionne, c'est totalement inintéressant....

    le 21/12/2020 à 08h22

  • meriam

    meriam Admin

    Bonjour, pour tester si la valeur et le type de deux variables sont identiques, utilisez "==="

    le 21/12/2020 à 14h14

  • nicoleta-9

    nicoleta-9

    pour soumetre je fait comme ça: var var1 = 42; var var2 = "42"; alert (true); var test = var1===var2; alert(test);

    le 06/11/2019 à 12h17

  • sarah.benncir-74

    sarah.benncir-74

    la réponse : var test = var1===var2; alert(test);

    le 10/10/2019 à 12h03

  • karim.allek11-69

    karim.allek11-69

    Bonjour, voici mon code et ça semble juste var var1 = 42; var var2 = "42"; var var1 = var2 ==="42" var test = var1===var2 ; alert(test);

    le 13/02/2019 à 14h08

  • meriam

    meriam Admin

    Bonjour, la ligne 3 n'est pas utile.

    le 13/02/2019 à 14h20

  • momocaylus-90

    momocaylus-90

    var test = var1===var2; alert(test);

    le 30/10/2018 à 08h03

  • djamchid

    djamchid

    je craque Alexandre, pourquoi mon code ne passe pas stp:((((

    le 11/09/2018 à 05h10

  • lhelgoualch.jeremie-73

    lhelgoualch.jeremie-73

    Bonjour, voici le message d'erreur: Avez-vous bien utilisé le bon opérateur et affecté le résultat à "test" ? Mon code: var test= var1 === var2; alert(test);

    le 02/08/2018 à 13h30

  • mram

    mram Admin

    Bonjour, essayez en 2 étapes :

    • déclarer la variable "test"
    • affecter le résultat de l'opération ensuite

    le 12/08/2018 à 23h06

  • emnakorbi1814-71

    emnakorbi1814-71

    var var1=x; var var2=y; var test=confirm("identiques"); if (var1==var2) { test=true; alert(test);} bloqué svp

    le 08/02/2018 à 19h12

  • mram

    mram Admin

    Bonjour, il n'y a pas besoin de créer une structure " if " ici.

    le 12/02/2018 à 19h37

  • dilmi.chourouk

    dilmi.chourouk

    var test = confirm("Identiques"); if (var1===var2){ alert(test); }

    le 23/01/2018 à 16h48

  • mram

    mram Admin

    Bonjour, oui on peut vérifier ainsi. C'est ce qui est demandé dans l'énoncé d'ailleurs.

    le 24/01/2018 à 14h52

index.html
script.js
<!DOCTYPE HTML> <html> <head> <title>Opérateurs de comparaison 1</title> <script src="script.js"></script> </head> <body> </body> </html>
var var1 = 42; var var2 = "42"; /* Votre variable test ... */ var test = /* ici */; alert(test);