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
etvar2
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
patricerameaux
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.
47 Commentaires
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
aminehadef
var test = var2 === var2; alert(test);Bonjour j'ai essayé ça ne fonction pas non plus!le 13/12/2016 à 23h56
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
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
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
ok merci j'ai pigéle 06/10/2016 à 10h18
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
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 Administrateur
Bonjour, c'est un bug connu, vous n'êtes pas le seul. Merci c'est noté.
le 28/11/2016 à 16h25
ben-leb
Je ne comprends pas ce qui ne va pas : var test=var1 === var2; alert(test)le 01/11/2016 à 17h19
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 Administrateur
Bonjour, la ligne 1 est inutile, et ajoutez un espace après "test".
le 28/04/2017 à 15h10
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
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 Administrateur
Il faut utiliser une structure if ...
le 13/07/2016 à 20h14
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 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
Ah je viens de comprendre merci!! ça fonctionne :)le 14/07/2016 à 20h42
Magalislk
Mais du coup pourriez vous me montrer le même code en utilisant if?le 14/07/2016 à 20h42
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 plusle 13/12/2016 à 03h20
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 bizarrele 28/10/2016 à 01h25
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
mram Administrateur
Mettez juste des espaces autour des signes === et =. Le code est juste cependant.
le 13/12/2016 à 11h29
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 lolle 24/11/2016 à 11h08
mram Administrateur
On demande de comparer var1 et var2, là vous comparez var2 avec elle-même ...
le 15/12/2016 à 12h13
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 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 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 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
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. mercile 12/10/2017 à 11h35
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 Administrateur
je craque Alexandre, pourquoi mon code ne passe pas stp:((((
le 11/09/2018 à 09h10
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 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
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 Administrateur
Merci c'est corrigé.
le 01/12/2017 à 00h22
dilmi.chourouk
var test = confirm("Identiques"); if (var1===var2){ alert(test); }le 23/01/2018 à 18h48
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
pourriez vous me dire ou est mon erreur ? Mercile 06/10/2017 à 16h57
mram Administrateur
Bonjour, votre code était correct, mais on vérifie aussi la syntaxe.
le 09/10/2017 à 00h39
pauline.morganti
var test=var1 === "var2"; alert(test); Bloquée svple 02/12/2017 à 20h48
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
bonjour, j'écris mon code et quand j'appuie sur le bouton soumettre rien ne se passe !le 16/06/2017 à 12h14
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
var var1=x; var var2=y; var test=confirm("identiques"); if (var1==var2) { test=true; alert(test);} bloqué svple 08/02/2018 à 21h12
mram Administrateur
Bonjour, il n'y a pas besoin de créer une structure " if " ici.
le 12/02/2018 à 21h37
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 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
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 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
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 Administrateur
Bonjour, la ligne 3 n'est pas utile.
le 13/02/2019 à 16h20
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 à 14h17
sarah.benncir-74
la réponse : var test = var1===var2; alert(test);le 10/10/2019 à 16h03
momocaylus-90
var test = var1===var2; alert(test);le 30/10/2018 à 10h03
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 ?