Exercice 9/38

Soit 3 variables var1, var2, var3 déjà définies et qui contiennent une valeur.
Dans le fichier "index.html" entre les balises <script></script> :

  • déclarez 3 variables test1, test2, test3;
  • vérifiez le type de var1, var2, var3 et stockez le résultat respectivement dans test1, test2, test3;
  • cliquez sur "Soumettre ma réponse".

Leçon 9/38

Vous avez déjà vu quatre types de variables :

  • la chaîne de caractères (type "string");
  • la valeur numérique (type "number");
  • le booléen (type "boolean");
  • le type "undefined";

Il existe un dernier type que vous verrez plus loin dans le cours.
Il peut s'avérer utile dans votre script de pouvoir vérifier de quel type est une variable. Cela se fait avec la commande typeof.

typeof retourne une chaîne de caractères contenant le type de la variable testée. Elle peut s'utiliser comme cela :

var maVariable = 10;
alert(typeof maVariable); // Affiche "number" 

Commentaires les mieux notés

  • hellwyn6

    Bonjour, petit soucis, je ne vois pas ce qui va pas dans mon code :/ j'ai testé les 3 et fais exactement la même chose pour chacune mais ça me dit que j'ai pas mis var2 dans test2 et var3 dans test3.

  • nkeshimanabrice-37

    veuillez corriger mon code...

  • willy.julan

    bonjour, pourquoi quand je stock le résultat dans la variable en affichant la variable cela me met undefined ? pourtant je fais bien ex: test1 = alert(typeof var1); alert(test1);

  • mram Administrateur

    Bonjour, l'énoncé dit que les variables var1, var2 et var3 sont déjà définies et possèdent déjà une valeur. Il suffit juste les utiliser, et non de les déclarer à nouveau.

81 Commentaires

  • hellwyn6

    hellwyn6

    Bonjour, petit soucis, je ne vois pas ce qui va pas dans mon code :/ j'ai testé les 3 et fais exactement la même chose pour chacune mais ça me dit que j'ai pas mis var2 dans test2 et var3 dans test3.

    le 03/09/2018 à 00h19

  • mram

    mram Administrateur

    Bonjour, relisez l'énoncé : il faut utiliser tyoeof pour tester chaque variable séparément.

    le 10/09/2018 à 03h32

  • willy.julan

    willy.julan

    bonjour, pourquoi quand je stock le résultat dans la variable en affichant la variable cela me met undefined ? pourtant je fais bien ex: test1 = alert(typeof var1); alert(test1);

    le 29/06/2016 à 15h50

  • mram

    mram Administrateur

    Bonjour, l'énoncé dit que les variables var1, var2 et var3 sont déjà définies et possèdent déjà une valeur. Il suffit juste les utiliser, et non de les déclarer à nouveau.

    le 29/06/2016 à 18h03

  • willy.julan

    willy.julan

    bonjour, ok cela je l'avais rectifier, mais malgré cela il me met encore le message si j'ai mis le résultat de la syntaxe typeof var1 dans la variable test1 et ainsi de suite pour les autres variables .... l'affectation se fait bien en bien de cette manière ? ===> var test1 = alert(typeof var1); ou var test1; test1=alert(typeof var1);

    le 30/06/2016 à 12h30

  • mram

    mram Administrateur

    Votre code est presque bon. Il suffit d'affecter ce que retourne "typeof xxx" à la variable "test" correspondante.

    le 05/03/2017 à 10h53

  • mram

    mram Administrateur

    Tout dépend comment on interprète l'énoncé, mais dans les exercices ceci "Soit 3 variables var1, var2, var3 déjà définies et qui contiennent une valeur." veut dire que nous avons déjà déclaré les variables et attribué une valeur, donc pas besoin de le refaire. Il est donc normal que ça fonctionne si vous avez supprimé ce que vous avez écrit en trop par avant.

    le 15/01/2017 à 23h30

  • psinparis

    psinparis

    On pourrait supposer qu'il faut déclarer var1, var2, et var3, puisque malgré le texte elles ne sont nulle part définies, mais en fait non. Autant les mettre dans l'exemple au départ, et ainsi je pense que la plupart des difficultés rencontrées sur cet exercise disparaîtraient. (Sinon j'ai du mal comprendre quelque chose, mais en tout cas en les supprimant ça marche.)

    le 13/01/2017 à 12h04

  • mram

    mram Administrateur

    Les deux affectations fonctionnent. La première est simplement plus courte à écrire. Par contre, en aucun cas il est demandé d'utiliser alert() pour voir le résultat dans les instructions, même si c'est indiqué dans la partie "explication" de l'énoncé à titre d'exemple.

    le 30/06/2016 à 14h05

  • willy.julan

    willy.julan

    ok je comprends bien pour les alerts, ils étaient la pour tester le fonctionnait, j'ai enlevé ... mais cela n’empêche pas le message d'erreur qui me demande si j'ai bien affecté les résultats des typoef des variables var(x) dans les variables test(x), se qui semble être le cas pour moi !

    le 30/06/2016 à 19h51

  • mram

    mram Administrateur

    Normal, dans les instructions il n'est pas indiqué qu'il faut utiliser alert(), et il y en a encore dans votre code ...

    le 30/06/2016 à 21h41

  • cedruyne

    cedruyne

    Bizarre, il me semble que mon code est correct : var var1 = 1, var2 = "test", var3 = true; var test1 = typeof var1, test2 = typeof var2, test3 = typeof var3; alert(test1 + " " + test2 + " " + test3);

    le 19/01/2017 à 14h22

  • cedruyne

    cedruyne

    Au temps pour moi, j'avais mal interprété l'énoncé. En supprimant la déclaration des var 1 à 3 cela valide bien l'exercice.

    le 19/01/2017 à 14h28

  • ludovicbonpoil

    ludovicbonpoil

    Ça bug sévère et l'énoncé n'est pas clair ou j'ai rien compris ! En suivant, ce qui disent les autres j'ai fini par faire : <script> var test1=alert(typeof var1); var test2=alert(typeof var2); var test3=alert(typeof var3); </script> Mais rien ne fonctionne, même avec alert(test1); alert(test2); alert(test3); ça me met undefined. Je passe à la suite...

    le 30/11/2016 à 18h59

  • mram

    mram Administrateur

    @cedruyne : oui c'est une erreur courante.

    le 22/01/2017 à 23h50

  • pascal-ds

    pascal-ds

    Dans l'index, les variables Var1,2,3 ne sont pas déclarées. Si on ne le fait pas, le type renvoyé est undefined. J'ai donc redéclaré les 3 valeurs. Il n'est effectivement pas demandé d'utiliser alert, mais cela aide bien pour vérifier. Apparemment, l'instruction fonctionne puisque mon code renvoie numbernumbernumber, c'est donc que le résultat est bien affecté à test1, 2, 3. Pourtant le correcteur me demande si j'ai bien affecté une valeur à test 1 et test 3 (mais pas à 2) so what ?

    le 18/08/2016 à 11h53

  • ludovicbonpoil

    ludovicbonpoil

    En faite il n'y a pas besoin d'alert...

    le 30/11/2016 à 22h49

  • mram

    mram Administrateur

    Les variables var1,2,3 sont déjà déclarées, elles existent et contiennent une valeur : mais pas forcément une valeur de type "number" pour chacune d'elles. Or vos variables test1,2,3 récupèrent toutes "number" (à cause de vos variables var1,2,3 réécrites alors qu'il n'y a pas besoin de le faire).

    le 19/08/2016 à 15h25

  • pascal-ds

    pascal-ds

    si j'enlève les var réécrites, j'obtiens undefined partout et...c'est la bonne réponse. Oo. Je ne comprends pas le message d'erreur toutefois, la valeur des variable n'affecte pas la justesse du code qui suit... mais ce n'est sans doute pas ce qu'attend le robot :)

    le 20/08/2016 à 10h59

  • mram

    mram Administrateur

    Votre premier code est incorrect, il ne faut en effet pas utiliser alert() mais simplement affecter aux variables "test" le type des variables "var" avec typeof.

    le 02/12/2016 à 13h21

  • abdo7219

    abdo7219

    bonjour j ai pu valider avec se code <!DOCTYPE HTML> <html> <head> <title>Tester le type d'une variable</title> </head> <body> <script> var test1 = typeof var1; var test2 = typeof var2; var test3 = typeof var3; alert(typeof var1); alert(typeof var2); alert(typeof var3); </script> </body> </html>

    le 02/05/2017 à 16h45

  • mram

    mram Administrateur

    Bizarre en effet, ça ne devrait pas être undefined. Je vais regarder ça...

    le 23/08/2016 à 00h13

  • cdezandee

    cdezandee

    bonjour, Je met: var var1 = 1; var var2 = true; var var3 = "texte"; var test1 = typeof var1; var test2 = typeof var2; var test3 = typeof var3; l'erreur s'affiche tojours alors que je teste alert(test1) ça fonctionne.

    le 12/11/2016 à 12h34

  • pierre.de.renty

    pierre.de.renty

    Cet exercice était vraiment très confusant, et assez inutile je trouve. J'ai bloqué pendant un quart d'heure pour finalement trouver que la réponse attendue par le correcteur auto était juste : <script> var test1 = "string"; var test2 = "number"; var test3 = "boolean"; </script> Ce qui n'est pas indiqué dans l'énoncé. En plus, j'ai travaillé en invité depuis un moment sans m'en rendre compte car le site m'a logout sans l'avoir vu donc ça n'a pas sauvegardé ma progression :'(

    le 04/12/2016 à 11h45

  • oliver-thomas

    oliver-thomas

    Bon c'est bien! j'ai réussi... mais je ne comprend pas du tout l'utilité de cette formule... je ne comprend pas du tout ce que j'ai fait pour cet exercice.

    le 10/04/2017 à 23h58

  • Biche Tordue

    Biche Tordue

    encore une fois l'exercice dit que les variable var1 var2 et var3 sont déjà définit alors qu'elle ne sont pas présente dans le code.

    le 29/05/2017 à 16h18

  • mram

    mram Administrateur

    Le but de l'exercice est d'utiliser "typeof" pour vérifier le type des variables "var1 "var2" "var3". Mais vous ne l'utilisez pas... Exemple: var test1 = typeof var1

    le 06/12/2016 à 00h11

  • mram

    mram Administrateur

    Bonjour, votre code lignes 8 à 10 est inutile car les variables existent déjà et contiennent déjà une valeur. Il suffit juste de les utiliser.

    le 14/11/2016 à 18h29

  • line.lagarde

    line.lagarde

    Je désespère après plusieurs heures à me casser la tête. Aidez moi svp à trouver ce qui m'échappe!

    le 05/06/2016 à 22h45

  • mram

    mram Administrateur

    Il faut par exemple attribuer à "test1" le résultat de "typeof var1" et ensuite afficher test1 avec alert(). Idem pour les deux autres.

    le 06/06/2016 à 00h25

  • Timo

    Timo

    Bonjour, en utilisant alert() comme cité dans l'exemple, on obtient undefined pour les var1,2 et 3. J'ai donc codé en mettant les réponses undefined pour chaque test1,2 et 3. Hélas, il me demande si j'ai bien mis le résultat du type de var1 dans test1 et pareil pour le 2 et 3. Voici mon code : <script> var test1=undefined; var test2=undefined; var test3=undefined; </script>

    le 09/09/2016 à 21h58

  • Timo

    Timo

    J'ai réussi à obtenir le type "string" pour var1 en écrivant alert(typeof "var1"); donc en mettant des guillemets pour var1. Depuis, le bouton pour exécuter javascript ne marche plus chez moi :/

    le 09/09/2016 à 22h15

  • yentrang.huynh

    yentrang.huynh

    Bonjour, mon code est bon (exercice validé) mais les valeurs retournées par le script pour les var1 var2 et var3 sont toujours undefined. <script> var test1 = typeof var1; var test2 = typeof var2; var test3 = typeof var3; alert(test1 + test2 + test3); </script>

    le 17/03/2017 à 20h18

  • dim.karol

    dim.karol

    voici la reponse. Pour ceux qui cherchent pendant des heures. var test1=typeof var1 var test2=typeof var2 var test3=typeof var3

    le 19/03/2017 à 23h26

  • mram

    mram Administrateur

    Le but de cet exercice est de récupérer le type de chaque variable var1 ... et de stocker le résultat dans test1 ...

    le 18/04/2017 à 13h12

  • mram

    mram Administrateur

    @yentrang.huynh : votre code est correct c'est le principal :)

    le 21/03/2017 à 17h32

  • mram

    mram Administrateur

    Votre code est incorrect. Dans l'exemple il y a alert(), mais c'est pas demandé dans les instructions. Faites juste ce qui est demandé.

    le 13/09/2016 à 18h19

  • mram

    mram Administrateur

    Les variables sont déclarées dans un script en amont de votre script.js .

    le 01/06/2017 à 16h18

  • patricerameaux

    patricerameaux

    encore une fois entre l'exemple et la solution il y a une utilisation complètement différente et non-implicite, et ça continue ...

    le 04/10/2016 à 14h12

  • mram

    mram Administrateur

    Qu'auriez vous attendu comme utilisation implicite ? Vous avez réussi l'exercice donc la notion a été comprise, que souhaiteriez-vous de plus ici ?

    le 04/10/2016 à 16h30

  • tlemsani_r

    tlemsani_r

    bonjour, je ne comprends pas très bien la consigne. Vous est-il possible de me donner davantage de détail ? Merci

    le 01/03/2017 à 14h47

  • baillylaurine13

    baillylaurine13

    Malgré que j'ai validé l'exercice ne comprends pas où s'affiche le résultat de typeof. Pourtant mon le bouton pour afficher javascript est activé ?!

    le 30/10/2017 à 16h49

  • mram

    mram Administrateur

    Bonjour, c'est normal. Ce code n'affiche rien mais effectue bien ce qu'on lui demande : récupérer le type des variables var1 ... et stocker la valeur de retour dans les variables test1 ...

    le 31/10/2017 à 23h16

  • mohamadoubachirououmar

    mohamadoubachirououmar

    Je suis bloqué index.html  1 2 3 4 5 6 7 8 9 10 11 12 13 14 <!DOCTYPE HTML> <html> <head> <title>Tester le type d'une variable </title> </head> <body> <script> var test1=(typeof var1); var test2=(typeof var2; var test3=(typeof var3); </script> </body> </html> JSResetSoumettre

    le 19/01/2018 à 18h57

  • mram

    mram Administrateur

    Bonjour, il n'y a pas besoin des parenthèses.

    le 22/01/2018 à 11h30

  • Dave

    Dave

    Sérieusement, ces exos sont super mals expliqués, les variables déjà déclarées ça met l'utilisateur en confusion totale.

    le 02/10/2017 à 01h37

  • JUBERT.BRUNO0602

    JUBERT.BRUNO0602

    je suis largué la ... on declare bien avec var ?

    le 21/01/2018 à 16h08

  • mram

    mram Administrateur

    Oui, mais "var1" "var2" "var3" sont des noms de variables et pas une déclaration de variable 1, 2 ou 3.

    le 22/01/2018 à 11h52

  • alex.schmitt79-17

    alex.schmitt79-17

    var test1= typeof var1 var test2= typeof var2 var test3= typeof var3

    le 04/05/2018 à 13h28

  • mram

    mram Administrateur

    Bonjour, vous oubliez le ; à la fin des instructions.

    le 09/05/2018 à 06h03

  • soacynthiasoa-62

    soacynthiasoa-62

    var test1= typeof var1; var test2= typeof var2; var test3= typeof var3;

    le 01/06/2018 à 17h10

  • carole.bureau123-44

    carole.bureau123-44

    oups! oublié de dire que je cherche la solution .... un énigme

    le 26/03/2018 à 00h28

  • mram

    mram Administrateur

    Bonjour, ce n'est pas typeeof mais typeof.

    le 28/03/2018 à 06h06

  • parigi38-3

    parigi38-3

    Bonjour, pas besoin de se compliquer la vie. Il faut respecter les consignes au plus simple : on part du principe que les "var" existent déjà ; pas besoin d'"alert" ; donc seulement : "var test1 = typeof var1; var test2 = typeof var2; var test3 = typeof var3;"

    le 23/04/2018 à 12h47

  • mram

    mram Administrateur

    C'est ça :)

    le 29/04/2018 à 02h33

  • CodyLeCodingue

    CodyLeCodingue

    SI VOUS BUGUEZ C'EST PROBABLEMENT A CAUSE DU FAIT QU'IL NE FAUT PAS DECLARER LES VARIABLES PUISQUE L'ADMIN DU SITE L'A DEJA FAIT --- Soit 3 variables var1, var2, var3 déjà définies et qui contiennent une valeur.

    le 17/09/2017 à 20h05

  • mram

    mram Administrateur

    C'est ça :) c'est indiqué en début d'énoncé quand c'est le cas.

    le 20/09/2017 à 15h28

  • ethereum

    ethereum

    Je suis rester bloquer 10 minutes sur cet exo.. ne déclarer pas les variable var1 et ainsi de suite elle sont déjà déclarer sans même être déclarer à l'oeil nue (Pour les administrateurs sachez que nous ne voyons aucune variable var1 et ainsi de suite avec ou sans compte sur différent navigateur)

    le 27/12/2017 à 10h04

  • mram

    mram Administrateur

    Bonjour, il est normal que vous ne voyez pas les variables initialisées en amont de votre code, sinon vous pourriez résoudre les exercices sans vraiment les faire. Il vous suffit de faire ce qui est demandé avec ces variables.

    le 30/12/2017 à 12h20

  • djamchid

    djamchid Administrateur

    quel est l'intérêt de faire les choses trois fois?

    le 25/08/2017 à 17h18

  • DuckPixl

    DuckPixl

    je n'ai rien compris x)

    le 18/06/2018 à 15h08

  • mram

    mram Administrateur

    Votre code est correct. Qu'est ce que vous n'avez pas compris ?

    le 24/06/2018 à 05h21

  • m.benamara94

    m.benamara94

    Il serait bien de revoir le descriptif de l'énnoncé car cela n'est pas trés claire.

    le 18/12/2017 à 22h15

  • mram

    mram Administrateur

    Bonjour, les variables var1 var2 var3 existent déjà, donc pas besoin de les déclarer à nouveau. Il faut juste les tester avec "typeof" .

    le 23/12/2017 à 16h21

  • thomas.chalanson

    thomas.chalanson

    daccord avec Dave, c'est pas le premier exercice mal expliqué sans compter ceux non mis à jour, dommage

    le 21/10/2017 à 15h19

  • mram

    mram Administrateur

    Bonjour, qu'est ce qui est mal expliqué ? Vous avez réussi l'exercice après 3 tentatives, c'est plutôt rapide.

    le 25/10/2017 à 14h59

  • volam

    volam

    je suis bloqué merci de m'aider var1=test1; var2=test2; var3=test3;

    le 05/08/2017 à 14h58

  • mram

    mram Administrateur

    Bonjour, attention au début vous n'aviez pas utilisé typeof, or c'est nécessaire.

    le 09/08/2017 à 10h55

  • djalloh2016-72

    djalloh2016-72

    en programmation plusieurs solutions pour arriver à bon port voici une parmi tant d'autres:

    le 24/02/2018 à 18h55

  • djalloh2016-72

    djalloh2016-72

    la solution trop banale: var test1 = typeof var1; var test2 = typeof var2; var test3 = typeof var3; alert(test1); alert(test2); alert(test3);

    le 24/02/2018 à 18h56

  • chantal.ferrand1-76

    chantal.ferrand1-76

    Alambiqué les leçons/exercices. A la leçon 6 on nous disait que la variable"text" était déjà définie alors qu'il a fallu la déclarer pour ne pas être bloquée et là la même chose, sauf qu'il ne faut pas cette fois-ci les déclarer ?

    le 01/07/2018 à 18h54

  • mram

    mram Administrateur

    Non à l'exercice 6 pas besoin de déclarer "text", et dans cet exercice non plus.

    le 05/07/2018 à 04h55

  • darshee

    darshee

    c'est moi ou les variables n'existent pas en amont?

    le 21/12/2017 à 16h17

  • mram

    mram Administrateur

    Bonjour, les variables sont bien déclarées en amont donc pas besoin de le faire à nouveau. Il faut juste tester chaque variable une par une avec typeof.

    le 23/12/2017 à 16h59

  • <h1>VincentD</h1>

    <h1>VincentD</h1>

    Je viens de comprendre qu'il fallait entrer une valeur Booléen dans la var3 pour avoir une valeur de chaque (string/number et boolean), en effet ce n'est pas très bien expliqué..

    le 05/12/2017 à 19h05

  • mram

    mram Administrateur

    Bonjour, votre code est incorrect. Le code peut se faire en trois lignes. Il faut à chaque fois tester la variable (var1 puis var2, puis var3) tout en affectant le résultat à respectivement test1, test2, test3. Pas besoin d'utiliser alert() ce n'est pas demandé.

    le 10/12/2017 à 14h00

  • lienmontage

    lienmontage

    J'ai réussi l'exercice, mais j'ai pas compris le but XD

    le 23/11/2017 à 15h57

  • mram

    mram Administrateur

    Bonjour, le but est de comprendre l'utilisation de typeof . Quand on l'utilise ainsi il retourne le type de la variable. Donc par exemple la variable test1 contiendra le type de la variable var1, donc on pourra savoir si var1 contient un nombre, ou du texte, ou autre chose.

    le 26/11/2017 à 19h40

  • damien.lando

    damien.lando

    je suis bloqué je ne comprends pas

    le 11/01/2018 à 16h31

  • mram

    mram Administrateur

    Bonjour, ajoutez des espaces autour de = et ça devrait passer.

    le 12/01/2018 à 02h34

  • nkeshimanabrice-37

    nkeshimanabrice-37

    merci bien vu

    le 19/02/2019 à 09h50

  • valerie.major-59

    valerie.major-59

    bonjour. j'ai réussi mais franchement l'énoncé n'était pas clair

    le 07/03/2019 à 11h57

  • Biila

    Biila

    <script> var var1 = 42; var var2 = undefined; var var3 = 'hello world'; var test1 = typeof var1; var test2 = typeof var2; var test3 = typeof var3; </script>

    le 12/12/2018 à 00h03

index.html
<!DOCTYPE HTML> <html> <head> <title>Tester le type d'une variable</title> </head> <body> <script> var var1 = 42 var var2 = undefined var var3 = 'hello world' </script> </body> </html>