Exercice 1/15

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/15

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

  • mram Administrateur

    Mettez juste des espaces autour des signes === et =. Le code est juste cependant.

  • aminehadef

    var test = var2 === var2; alert(test);Bonjour j'ai essayé ça ne fonction pas non plus!

  • philippe.grand78

    Je n'arrive pas à comprendre quelle syntaxe il faut utiliser dans cette exercice. En remplaçant var1 et var2 par des entiers je vois bien que le script fonctionne et renvoie bien une valeur true ou false. mais quand je fais var test = var1 == var2 ou var test = var1 === var2 ... dans ce cas alert(test); n'affiche aucun résultat ou fenêtre.

  • philippe.grand78

    Exercice réussi avec ce code: var var1=1; var var2=1; var test = var1 == var2; var test = var1 === var2; alert(test); Je me doute bien que ce n'est pas la bonne réponse. je suis bloqué sur cette exercice depuis 1 heure et j'ai l'impression depuis le début que les variables var1 et var2 n'ont pas de valeurs attribuée.

44 Commentaires

  • mram

    mram Administrateur

    Mettez juste des espaces autour des signes === et =. Le code est juste cependant.

    le 13/12/2016 à 11h29

  • aminehadef

    aminehadef

    var test = var2 === var2; alert(test);Bonjour j'ai essayé ça ne fonction pas non plus!

    le 13/12/2016 à 23h56

  • philippe.grand78

    philippe.grand78

    Je n'arrive pas à comprendre quelle syntaxe il faut utiliser dans cette exercice. En remplaçant var1 et var2 par des entiers je vois bien que le script fonctionne et renvoie bien une valeur true ou false. mais quand je fais var test = var1 == var2 ou var test = var1 === var2 ... dans ce cas alert(test); n'affiche aucun résultat ou fenêtre.

    le 07/10/2016 à 13h36

  • philippe.grand78

    philippe.grand78

    Exercice réussi avec ce code: var var1=1; var var2=1; var test = var1 == var2; var test = var1 === var2; alert(test); Je me doute bien que ce n'est pas la bonne réponse. je suis bloqué sur cette exercice depuis 1 heure et j'ai l'impression depuis le début que les variables var1 et var2 n'ont pas de valeurs attribuée.

    le 07/10/2016 à 13h51

  • bozybe

    bozybe

    Quand dans le début du paragraphe 'Instructions' vous indiquez: "Soit deux variables var1 et var2 déjà déclarées et qui contiennent une valeur.", Pour un novice cela peut lui faire supposer qu'il n'a rien à écrire surtout que cette indication se trouve avant ' Dans le fichier "script.js": ' Il serait préférable (à mon humble avis..) de dire: "1. Déclarez deux variables var1 et var2 en leur attribuant la même valeur et le même type." Puis : "2. déclarez la variable test." etc..

    le 03/07/2016 à 07h34

  • patricerameaux

    patricerameaux

    ok merci j'ai pigé

    le 06/10/2016 à 10h18

  • mram

    mram Administrateur

    Il y a effectivement rien à écrire concernant ces 2 variables : pas besoin de les déclarer. Elles existent déjà et contiennent une valeur. Il suffit de les utiliser comme demandé dans les instructions.

    le 03/07/2016 à 15h16

  • rzep78

    rzep78

    Bonjour, je n'arrive vraiment pas à passer cette étape, voici mon code ; var test= var1 === var2; alert(test); et ils me disent "avez vous utilisé le bon opérateur et affecté le résultat a "test""; aidez moi svp :(

    le 26/04/2017 à 10h37

  • mram

    mram Administrateur

    Bonjour, c'est un bug connu, vous n'êtes pas le seul. Merci c'est noté.

    le 28/11/2016 à 16h25

  • ben-leb

    ben-leb

    Je ne comprends pas ce qui ne va pas : var test=var1 === var2; alert(test)

    le 01/11/2016 à 17h19

  • mram

    mram Administrateur

    alert() ne renvoie rien car il bug sur certains exercice dans certaines conditions. Mais normalement avec votre code d'origine qui est correct vous pouvez valider l'exercice.

    le 10/10/2016 à 13h07

  • mram

    mram Administrateur

    Bonjour, la ligne 1 est inutile, et ajoutez un espace après "test".

    le 28/04/2017 à 15h10

  • mram

    mram Administrateur

    Juste les lignes 1 et 2 sont inutiles car les variables existent déjà, et elles contiennent déjà des valeurs.

    le 02/11/2016 à 21h05

  • Magalislk

    Magalislk

    Bon je commence à être sérieusement larguée, je dois manquer de logique :/ var test = alert( var1 === var2); quelque chose me dit que j'ai tout fait de travers!

    le 12/07/2016 à 22h33

  • mram

    mram Administrateur

    Il faut utiliser une structure if ...

    le 13/07/2016 à 20h14

  • Magalislk

    Magalislk

    Je trouve que c'est un peu dur quand on est débutant...y'a pas vraiment d'indication dans les instructions à propos de if..

    le 14/07/2016 à 09h40

  • mram

    mram Administrateur

    Oui, parce que la structure "if" est abordée quelques exercices plus loin. Mais normalement cet exercice est faisable sans l'utiliser. Essayer de décomposer votre code en 2 lignes en suivant les instructions étape par étape. D'abord vérifier que var1 et var2 ont le même type ET le même contenu en affectant le résultat à la variable "test". Ensuite, afficher "test" avec alert(). Ici vous n'avez pas affiché "test" avec alert().

    le 14/07/2016 à 11h31

  • Magalislk

    Magalislk

    Ah je viens de comprendre merci!! ça fonctionne :)

    le 14/07/2016 à 20h42

  • Magalislk

    Magalislk

    Mais du coup pourriez vous me montrer le même code en utilisant if?

    le 14/07/2016 à 20h42

  • aminehadef

    aminehadef

    var test=var2===var1; alert(test); AVEZ-VOUS BIEN UTILISÉ LE BON OPÉRATEUR ET AFFECTÉ LE RÉSULTAT À "TEST" ? Bonjour je ne comprend pas car pour testé le type et la valeur il faut utilisé 3= j'ai aussi essayé avec deux sa ne fonctionne pas non plus

    le 13/12/2016 à 03h20

  • markitobcn

    markitobcn

    je ne comprend pas… j'ai réussi mais j'ai eu de la chance. Pourquoi je n'ai pas pu écrire "var test1" et "var test2" puis les mettre dans alert? mon code test est déclaré 2 fois et cela fonctionne… bizarre bizarre

    le 28/10/2016 à 01h25

  • markitobcn

    markitobcn

    j'ai encore changé le code et c'est plus cohérent… mais que les énoncés sont compliqués et embrouillent plus qu'elles aident (si je peux me permettre)

    le 28/10/2016 à 01h28

  • Chris

    Chris

    Bonjour, juste pour vous signaler que les pourcentages des différents "grands modules" ne fonctionnent pas : lorsque je réussi un exercice je suis à 100% sur cette exercice. En revanche, si je réussis tous les exercices d'un module, le module reste à 0% ! J'ai donc l'impression de ne pas avoir commencer la formation lol

    le 24/11/2016 à 11h08

  • patricerameaux

    patricerameaux

    désolé mais je ne comprends rien à votre exemple : je ne vois pas ce que peut inspecter test1 = 1 == "1" et encore moins 1 === "1" la valeur et le type : pourriez-vous décoder en clair svp ?

    le 05/10/2016 à 16h48

  • mram

    mram Administrateur

    On demande de comparer var1 et var2, là vous comparez var2 avec elle-même ...

    le 15/12/2016 à 12h13

  • mram

    mram Administrateur

    Alors, concernant votre premier message : vous déclarez 2 fois "test" mais seule la 2ème ligne est correcte (avec l'opérateur ===). Comme les instructions sont exécutées dans l'ordre, la 1ère ligne (bien que fausse) n'empêche pas de valider l'exercice car à la ligne suivante vous attribuer la bonne valeur à "test". Ce qui est vérifié lors de la correction c'est la valeur de "test" à la fin du script, donc c'est bon. Donc oui vous avez eu de la chance d'écraser votre erreur de la ligne 1.

    le 29/10/2016 à 17h40

  • mram

    mram Administrateur

    Ici, l'énoncé est détaillé car les notions à appréhender commencent à être d'un certain niveau pour les débutants. Donc il faut prendre le temps d'expliquer. Qu'est ce qui vous a embrouillé dans ce cas précis ??

    le 29/10/2016 à 17h42

  • mram

    mram Administrateur

    Dans l'exemple test1 sera égal à "true" car avaec "==" on ne vérifie que le contenu et 1 c'est pareil que "1".

    le 05/10/2016 à 21h17

  • mram

    mram Administrateur

    Mais test1 sera égal à "false" car avec "===" on vérifie le contenu ET le type, et 1 c'est différent de "1". Car le premier est un nombre (type "number") alors que le deuxième est une chaîne de caractères (type "string") qui contient un nombre : le contenu est le même mais ce n'est pas le même type.

    le 05/10/2016 à 21h20

  • kelly.tastets

    kelly.tastets

    Bonjour, petit soucis sur l'affichage d'alert. on me demande si j'ai bien affichée test avec alert... ce que j'ai fais. pouvez vous m'aider. merci

    le 12/10/2017 à 11h35

  • mram

    mram Administrateur

    Bonjour, l'erreur que vous avez fait est d'avoir mis un "V" majuscule à "var2" : cette variable n'existe pas.

    le 12/10/2017 à 16h45

  • djamchid

    djamchid Administrateur

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

    le 11/09/2018 à 09h10

  • pauline.morganti

    pauline.morganti

    var test; test= var1 === var2; alert(test); Toujours pas et j'ai tout essayé au niveau des espaces des guillemets , avec ou sans var...

    le 11/12/2017 à 19h43

  • mram

    mram Administrateur

    Bonjour, il manquait juste un espace autour du signe = . Là c'est bon :) Mais l'important c'est de comprendre ce que vous avez fait.

    le 14/12/2017 à 21h18

  • nilugette

    nilugette

    Pour les coquilles : "permettre" et non "permettrent" - "de façon différente(s)" sans "s" - et tout à la fin "essayer" avec seulement 2 "s" au lieu de 3 - sur ce, j'y retourne :)

    le 29/11/2017 à 10h35

  • mram

    mram Administrateur

    Merci c'est corrigé.

    le 01/12/2017 à 00h22

  • dilmi.chourouk

    dilmi.chourouk

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

    le 23/01/2018 à 18h48

  • mram

    mram Administrateur

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

    le 24/01/2018 à 16h52

  • ludovicthiolet

    ludovicthiolet

    pourriez vous me dire ou est mon erreur ? Merci

    le 06/10/2017 à 16h57

  • mram

    mram Administrateur

    Bonjour, votre code était correct, mais on vérifie aussi la syntaxe.

    le 09/10/2017 à 00h39

  • pauline.morganti

    pauline.morganti

    var test=var1 === "var2"; alert(test); Bloquée svp

    le 02/12/2017 à 20h48

  • mram

    mram Administrateur

    Bonjour, faites le en deux étapes. 1 : déclarer la variable "test". 2 : faire la comparaison entre var2 et var1. Mais attention si vous mettez var1 entre guillemets, ce n'est plus une variable mais juste du texte brut.

    le 05/12/2017 à 11h28

  • bernardraphael13

    bernardraphael13

    bonjour, j'écris mon code et quand j'appuie sur le bouton soumettre rien ne se passe !

    le 16/06/2017 à 12h14

  • mram

    mram Administrateur

    Bonjour, bizarre. J'ai testé votre dernier code datant du 21/06 et il fonctionne parfaitement.

    le 21/06/2017 à 16h24

  • 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 à 21h12

  • mram

    mram Administrateur

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

    le 12/02/2018 à 21h37

  • pauline.morganti

    pauline.morganti

    Je ne comprends pas ce que vous voulez dirre par déclarer test avant. il faut faire var test; puis encore après var test= var1===var2; alert (test)?

    le 06/12/2017 à 09h13

  • mram

    mram Administrateur

    Bonjour, c'est presque ça. D'abord on déclare "test" en mettant "var test;" puis ensuite on fait ce que vous avez indiqué mais sans remettre "var" devant. Car la variable "test" a déjà été déclarée juste avant. On l'utilise juste pour y stocker le résultat de notre comparaison entre var1 et var2.

    le 10/12/2017 à 14h06

  • 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 à 17h30

  • mram

    mram Administrateur

    Bonjour, essayez en 2 étapes :

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

    le 13/08/2018 à 03h06

  • 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 à 16h08

  • meriam

    meriam Administrateur

    Bonjour, la ligne 3 n'est pas utile.

    le 13/02/2019 à 16h20

  • momocaylus-90

    momocaylus-90

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

    le 30/10/2018 à 10h03

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);