Exercice 2/31

Dans le fichier "script.js" :

  • déclarez la variable tableau qui doit contenir un tableau ordonné vide;
  • déclarez la variable test;
  • vérifiez le type de tableau et affectez-le à test;
  • affichez test avec alert();
  • cliquez sur "Soumettre ma réponse".

Leçon 2/31

Aborder les tableaux en Javascript nécessite de faire un point sur la notion d'objet.

Un objet c'est quoi :

En Javascript, une chaîne de caractères, un nombre, un booléen sont en fait des objets.

var texte = "Je suis une chaîne de caractères.";

Ci-dessus, on créé la variable texte qui contient un objet qui représente une chaîne de caractères. Plus qu'une variable, on a donc créé un objet.

La structure d'un objet :

Un objet contient toujours trois éléments :

  • un constructeur;
  • des propriétés;
  • des méthodes;

Vous avez déjà utilisé des propriétés et des méthodes natives que Javascript met à disposition pour les chaînes, les nombres, etc. Si on reprend le code précédent :

var texte = "Je suis une chaîne de caractères.";
var longueur = texte.length; // Propriété
var maj = texte.toUpperCase(); // Méthode

Dès que l'on créé une chaîne de caractères, pour Javascript ce sera un objet et il propose par défaut certaines propriétés et méthodes qui permettent de manipuler l'objet stocker dans la variable texte.

Le caractère important ici est le point ., il permet de dire que l'on souhaite accéder à la propriété length de texte qui contient l'objet en question, autrement dit la chaîne de caractères.

Pourquoi parler des objets :

Aborder cette notion maintenant est important. Soit le code suivant :

var txt = "blablabla";
var nb = 10;
alert(typeof txt); // affiche "string"
alert(typeof nb); // affiche "number"

Avec typeof on peut connaître le type d'une variable selon ce qu'elle contient. A votre avis, que donne typeof avec un tableau [] ?? Faites l'exercice pour avoir la réponse.

Commentaires les mieux notés

42 Commentaires

  • fabrice.reymond-24

    fabrice.reymond-24

    Bonjour, Est-il possible que Bob arrete de dire bonjour à chaque page ? ;-)

    le 03/09/2022 à 14h57

  • Patricio M

    Patricio M Admin

    Fabrice, on va essayer... oui. Patience avec Bob

    le 05/09/2022 à 09h02

  • ramada.damien-55

    ramada.damien-55

    bonjour il doit y avoir un pb avec cette série d'exercices..je n'arrête pas d'avoir boucle infinie alors que le script s'effectue bien !

    le 24/01/2022 à 17h57

  • meriam

    meriam Admin

    Votre code fonctionne correctement

    le 25/01/2022 à 10h00

  • childeric23-53

    childeric23-53

    bonjour je ne vois pas mon erreur

    le 17/12/2021 à 12h58

  • meriam

    meriam Admin

    Bonsoir, pour la variable test , il faut combiner la déclaration de test ainsi que l'affectation de valeur

    le 19/12/2021 à 22h56

  • cedricmelou-35

    cedricmelou-35

    bonjour je ne vois pas mon erreur merci

    le 22/09/2021 à 13h36

  • meriam

    meriam Admin

    Bonjour, j'ai corrigé votre code :var tableau = []; var test = typeof tableau; alert(test)

    le 23/09/2021 à 14h12

  • alexandre.roy04-73

    alexandre.roy04-73

    bonjour j'ai compris toute la logique mais je vois pas pourquoi sa ne marche pas : var tableau=[]; var test=alert(typeof tableau);

    le 20/12/2020 à 14h18

  • meriam

    meriam Admin

    Bonjour, une fois vous avez testé le type du tableau, vous devez afficher le résultat avec alert(test)

    le 23/12/2020 à 11h09

  • Lexo

    Lexo

    Bonjour je ne comprends pas mon erreur pouvez vous m'aider merci. voici mon code var tableau [] var test = typeof tableau; alert(test)

    le 14/06/2018 à 13h25

  • mram

    mram Admin

    Bonjour, ligne 1 il manque le signe d'affectation = . Et c'est ligne 2 qu'il faut utiliser "typeof".

    le 19/06/2018 à 00h53

  • pierre.jacquel

    pierre.jacquel

    Pourquoi apprendre des bêtises aux étudiants ? Une chaine n'est PAS un objet, c'est un type primitif, string en l'occurence. Si on à l'impression que c'est un objet avec des propriétés c'est à cause du wrapper objet associé. De plus c'est quoi cette histoire de constructeur ? Un objet en js n'a absolument pas besoin de constructeur ni de méthodes pour vivre sa vie d'objet...

    le 03/01/2018 à 10h20

  • mram

    mram Admin

    Bonjour, nous simplifions le discours. Il n'est pas nécessaire de rentrer dans les détails pour des débutants. Oui une primitive "string" est convertie en un objet temporaire pour pouvoir utiliser les méthodes (.split() ... ) et les propriétés ( length ... ) de l'objet global String. Mais ça devient plus compliqué pour des débutants.

    le 11/01/2018 à 22h43

  • rachid

    rachid

    C'est bon j'ai trouvé. Allé zou a l'exo suivant.

    le 09/12/2017 à 10h15

  • rachid

    rachid

    Impossiblie de valide cet exercice. Voici mon exercice : var tableau = []; var test = tableau; alert(typeof tableau);

    le 09/12/2017 à 10h12

  • mram

    mram Admin

    Non c'est bien "typeof tableau" et non "tableau.typeof"

    le 21/05/2017 à 18h32

  • santikush

    santikush

    je ne comprends pas pourquoi ma variable fonctionne présentée comme ceci: var test=typeof tableau; alors que je croyais avoir compris qu'il fallait l'indiquer de cette façon: var test=tableau.typeof;

    le 17/05/2017 à 11h00

  • mram

    mram Admin

    Il faut que la variable "test" contienne le résultat de "typeof tableau". Il faut faire un mix de vos lignes 2 et 3.

    le 24/02/2017 à 21h59

  • mariinadaguet

    mariinadaguet

    bonjour, je n'ai pas trop compris "AVEZ-VOUS BIEN AFFECTÉ LE TYPE DE "TABLEAU" À "TEST" ?" Merci

    le 24/02/2017 à 09h58

  • mram

    mram Admin

    Il y a en effet plusieurs moyens d'arriver au même résultat, comme souvent d'ailleurs. Dans les instructions on décompose au maximum la logique du code car c'est plus accessible pour les débutants en programmation / algorithmie. ça permet de bien comprendre ce que fait telle ou telle partie du code.

    le 05/12/2016 à 21h59

  • ludovicbonpoil

    ludovicbonpoil

    Comment se compliquer la vie... j'ai fait : var tableau = []; alert(typeof tableau); C'est plus simple et j'ai eu le même résultat.

    le 02/12/2016 à 14h10

index.html
script.js
<!DOCTYPE HTML> <html> <head> <title>Tableau et objet</title> <script src="script.js"></script> </head> <body> </body> </html>