1 of 68

PROGRAMME CODE

DIGISTART JS

2 of 68

2

Déroulé de la séance

Questions et Live Coding (10 mins)

Cours et Applications (40 mins)

Exercices (60 mins)

Révisions (10 minutes)

3 of 68

3

Rappels

  • On attend des comparateurs et des opérations logiques qu’ils nous retournent une valeur de type Boolean.
  • Les conditions prennent en paramètres des instructions qui renvoient une valeur de type Boolean.

Bien souvent, ce paramètre utilise des opérateurs logiques et de comparaison.

  • Les opérateurs logiques servent à combiner plusieurs instructions. Il faut connaître la logique booléenne pour les utiliser correctement.

4 of 68

Logique booléenne

4

QUIZ

Que vaudra cette instruction ?

vrai ET faux

5 of 68

Logique booléenne

5

QUIZ

Que vaudra cette instruction ?

vrai ET faux

FAUX

6 of 68

Logique booléenne

6

QUIZ

Que vaudra cette instruction ?

vrai OU faux

7 of 68

Logique booléenne

7

QUIZ

Que vaudra cette instruction ?

vrai OU faux

VRAI

8 of 68

Logique booléenne

8

QUIZ

Que vaudra cette instruction ?

PAS faux

9 of 68

Logique booléenne

9

QUIZ

Que vaudra cette instruction ?

PAS faux

VRAI

10 of 68

Opérateurs de Comparaison,

Opérateurs Logiques

10

QUIZ

Que vaudra cette instruction ?

var first = 13;

var second = 3

!(first > second)

11 of 68

Opérateurs de Comparaison,

Opérateurs Logiques

11

QUIZ

Que vaudra cette instruction ?

var first = 13;

var second = 3

!(first > second)

false

true

not

{

12 of 68

Opérateurs de Comparaison,

Opérateurs Logiques

12

QUIZ

Que vaudra solution ?

var solution;

function isNumberGreaterThanThree(number) {

return number > 3;

}

if (isNumberGreaterThanThree(4) && isNumberGreaterThanThree(2)) {

solution = "A";

} else {

solution = "B";

}

13 of 68

Opérateurs de Comparaison,

Opérateurs Logiques

13

QUIZ

Que vaudra solution ?

var solution;

function isNumberGreatherThanThree(number) {

return number > 3;

}

if (isNumberGreatherThanThree(4) && isNumberGreatherThanThree(2)) {

solution = "A";

} else {

solution = "B";

}

true

false

et

false

on ne rentre pas ici

on rentre ici

14 of 68

Correction des exercices

Live coding

14

Opérateurs de Comparaison,

Opérateurs Logiques et Conditions

15 of 68

15

COURS

16 of 68

16

  1. Structures de Données en Javascript
  1. Tableaux ou Arrays
  1. Objets ou Objects

Plan du cours

17 of 68

17

1

Structures de

données

en JavaScript

18 of 68

Exemples

console.log(lesBleus); // undefined

var vainqueur = null; // null

var nombreDeJoueurs = 11; // Number

var message = 'On est les champions !'; // String

var konexioIsCool = true; // Boolean

18

Rappels - Types de données (Primitives)

19 of 68

Comment définir des modèles de données complexes en JavaScript?

  • Quand on veut représenter un ensemble/une liste d'éléments, par exemple une liste de noms joueurs de foot ou de noms de chanteurs…?

  • Quand on veut représenter un élément qui a plusieurs caractéristiques, par exemple une voiture ou une personne…?

En JavaScript on peut utiliser les tableaux et les objets.

19

Structures de données en JavaScript

20 of 68

20

2

Les tableaux

21 of 68

Définition

Dans les mots de tous les jours

Un tableau c’est comme un classeur :

  • on y range des documents
  • il garde l’ordre dans lequel on les range
  • on trouve un document par son numéro de page
  • il peut contenir tous types de documents
  • on peut y ajouter/retirer des documents

Les tableaux (arrays) servent à représenter une liste de valeurs de n’importe quel type de données : chaînes de caractères, nombres, booléens, tableaux ou objets.

21

Les tableaux - définition

22 of 68

var numbers = [ 1 , 2 , 3 ] ;

22

Les tableaux - syntaxe

1er élément

indice 0

virgule

2ème élément

indice 1

crochet ouvrant

crochet fermant

23 of 68

Exemples

var players = ['Modric', 'Ronaldo', 'Salah'];

Liste des 3 meilleurs joueurs de la Coupe du Monde

var groceries = ['pain', 'Nutella', 'jus'];

Liste de courses pour un super goûter

  • pain
  • Nutella
  • jus

23

Les tableaux - exemples

24 of 68

Déclaration d’un tableau (array)

Ou créer un tableau qui contient déjà des données

Les éléments d’un tableau sont écrits entre crochets et sont séparés par des virgules.

var elements = ['hello', 'world'];

On peut créer un tableau vide et y ajouter des valeurs plus tard...

var arr = [];

24

Les tableaux - déclaration

25 of 68

Caractéristiques

Les tableaux sont ordonnés, l’ordre de leurs éléments est conservé et ils sont indexés à zéro : le premier élément a l’indice 0.

L’indice c’est l’adresse / la position de l'élément dans le tableau.

var players = ['Modric', 'Ronaldo', 'Salah'];

25

Les tableaux - caractéristiques

1er élément

2ème élément

3ème élément

0

1

2

indice

26 of 68

Caractéristiques

Les tableaux peuvent contenir des types de données mixtes et même des données non uniques.

var arr = ['hello', true, 4, [1, 2]];

Exemple

Un tableau qui contient des types de données différents.

var arr2 = [4, 4, 6];

Exemple

Un tableau qui contient des données non uniques.

26

Les tableaux - caractéristiques

27 of 68

Accéder à un élément d’un tableau

On accède à un élément d’un tableau par son indice.

elements[0];

Avec le tableau ci-dessous,

var elements = ['hello', 'world'];

on accède au premier élément “hello” comme ceci :

27

Les tableaux - accéder à un élément

28 of 68

Longueur d’un tableau

La longueur d’un tableau (en anglais length), c’est le nombre d’éléments qu’il contient.

var elements = ['hello', 'world'];

Pour obtenir la longueur d’un tableau on écrit :

elements.length;

ou

[1, 2, 3].length;

28

Les tableaux - propriétés et méthodes

2

3

29 of 68

Ajouter des éléments à la fin d’un tableau

On utilise la méthode push pour ajouter un ou plusieurs éléments à la fin d’un tableau.

var arr = [1, 2, 3];

Quand on l’appelle la méthode retourne la longueur du nouveau tableau :

arr.push(4, 5, 6); // 6

console.log(arr); // [1,2,3,4,5,6]

29

Les tableaux - propriétés et méthodes

30 of 68

Retirer le dernier élément d’un tableau

On utilise la méthode pop pour retirer le dernier élément d’un tableau.

var arr = [1, 2, 3];

Quand on l’appelle la méthode retourne l’élément supprimé

arr.pop(); // 3

console.log(arr); // [1,2]

30

Les tableaux - propriétés et méthodes

31 of 68

Méthodes courantes sur les arrays:

31

Les tableaux - méthodes notables

32 of 68

Exercices

Introduction au JavaScript

32

ARRAYS MEMO

var colors = ['blue', 'yellow'];

colors[1]; // OUTPUT: yellow

colors[1] = 'red';

console.log(colors);

// OUTPUT: ["blue", "red"]

  1. Dans chaque dossier de session, il y a d’autres dossiers d’exercices
  2. Chaque dossier d’exercice a un README.md où se trouvent les instructions
  3. Toujours ouvrir index.html dans le navigateur
  4. Ouvrir la console du navigateur
  5. Rafraîchir la la page après chaque changement

33 of 68

33

3

Les objets

34 of 68

Définition - Objets

Les objets (objects en anglais) servent à représenter des données complexes sous la forme d’un ensemble de propriétés.

On les utilise pour décrire des choses que les types de données primitifs (String, Number, Boolean…) ne suffisent pas à décrire.

Les objets peuvent décrire absolument n’importe quelle chose de la vie réelle… si on les modélise bien.

34

Les objets - définition

35 of 68

Exemple - Modèle de données

Jane

nom: DOE

prénom: Jane

age: 32

genre: Femme

taille: 175

Personne

  • nom
  • prénom
  • age
  • genre
  • taille

35

Les objets - définition

36 of 68

Définition - Propriétés

Si on veut décrire une chose, on fait la liste des caractéristiques qui la définissent.

Ces caractéristiques doivent représenter le groupe auquel la chose décrite appartient.

Exemple

Un humain peut avoir un chien comme animal de compagnie MAIS cela ne décrit pas clairement ce qu’est un humain et cela ne définit pas tous les humains.

36

Les objets - définition

37 of 68

Définition - Propriétés

Film

  • titre
  • réalisateur
  • date de sortie
  • genre
  • casting

Les caractéristiques, qui servent à décrire une chose sont appelées les propriétés d’un objet.

Personne

  • nom
  • prénom
  • âge
  • genre
  • taille

Voiture

  • marque
  • modèle
  • couleur
  • portes
  • année

Exemples

37

Les objets - définition

38 of 68

Définition - Propriétés

“Ford”

“Mustang”

“rouge”

5

1967

marque

modèle

couleur

portes

année

string

string

string

number

number

Voiture

clés/propriétés

valeurs

Les propriétés (ou clés) ont des valeurs.

On appelle ça un couple clé : valeur

38

Les objets - définition

39 of 68

Définition

Exemple

Un objet c’est donc un ensemble de clés auxquelles on a donné des valeurs, pour représenter un modèle de données (une chose) sophistiquée (complexe).

var movie = {

title: 'The Lion King',

year: 2019,

duration: 118,

cast: [{ character: 'Pumba', actor: 'Seth Rogen' }],

genres: ['Drama']

};

39

Les objets - définition

40 of 68

Exemple

var player1 = {

firstName: 'Thiago',

lastName: 'Emiliano da Silva',

yearOfBirth: 1984,

teams: ['PSG', 'Brazil National Team']

};

var player2 = {

firstName: 'Alex',

lastName: 'Morgan',

yearOfBirth: 1989,

teams: ['OL', 'USA National Team']

};

40

Les objets - définition

41 of 68

var myBook = {

title : 'Salem' ,

author : 'Stephen King' ,

} ;

41

Les objets - syntaxe

valeur

accolade ouvrante

clé

deux points

virgule

accolade fermante

42 of 68

Déclaration d’un objet (object)

Ou créer un objet qui contient déjà des données

Les clés/propriétés d’un objet sont écrites entre accolades et sont séparées par des virgules.

var cat = { name: 'Kitty', age: 12,};

On peut créer un objet vide et y ajouter des clés/valeurs plus tard...

var obj = {};

42

Les objets - déclaration

43 of 68

Déclaration d’un objet (object)

Par défaut une propriété qui n’a pas de valeur, c'est à dire qu'elle n'a pas été définie… est undefined.

et que j'essaie d'afficher dans la console une des propriétés...

console.log(obj.title); // undefined

Si je crée un objet sans propriété...

var obj = {};

43

Les objets - déclaration

44 of 68

Ajout de propriétés

var movie = {};

movie.title = 'Wonderland';

// { title: "Wonderland" }

  1. La “notation point” ou “dot notation”

44

Les objets - ajout de propriétés

valeur

clé

point

signe égal

nom de l’objet

45 of 68

Ajout de propriétés

movie['year'] = 2019;

// { title: "Wonderland", year: 2019 }

  1. La “notation crochets” ou “brackets notation”

45

Les objets - ajout de propriétés

valeur

clé

crochet ouvrant

nom de l’objet

guillemet

crochet fermant

signe égal

46 of 68

Ajout de propriétés

var property = 'language';

movie[property] = 'English';

// { title: "Wonderland", year: 2019, language: "English" }

  1. La “notation crochet” avec une variable

46

Les objets - ajout de propriétés

valeur

variable contenant la clé

crochet ouvrant

nom de l’objet

crochet fermant

signe

égal

47 of 68

Pour accéder à la valeur d’une propriété d’un objet:

  1. La notation “point” ou “dot notation”

var myBook = { title: 'Salem', author: 'Stephen King'};

console.log(myBook.author); // "Stephen King"

console.log(myBook['title']); // "Salem"

  • La notation “crochets” ou “brackets notation”

47

Les objets - accéder à la valeur d'une propriété

48 of 68

Pour accéder à la valeur d’une propriété d’un objet:

var myBook = { title: 'Salem', author: 'Stephen King'};

var property = 'title';

console.log(myBook[property]); // "Salem"

  • La notation “crochets” ou “brackets notation” avec une variable

48

Les objets - accéder à la valeur d'une propriété

49 of 68

Exemple avancé notation crochets avec variable

var options = ['FR', 'US', 'ES'];

var selected = 'FR'; // le choix de l’utilisateur est dans selected;

var data = {

FR: { name: 'France', greeting: 'Bonjour !' },

US: { name: 'United States', greeting: 'Hello !' },

ES: { name: 'España', greetin: '¡ Ola !' },

};

console.log(data[selected].name); // nom du pays choisi

49

Les objets - accéder à la valeur d'une propriété

50 of 68

Rappel: les propriétés qui n’ont pas de valeur/auxquelles on n’a pas attribué de valeur sont non-définies… en JS elles ont donc le type undefined

Si on essaye d'accéder à la propriété “year”

var myBook = { title: 'Salem', author: 'Stephen King'};

console.log(myBook.year); // undefined

50

Les objets - accéder à la valeur d'une propriété

51 of 68

Caractéristiques

var myBook = {

title: 'Salem',

author: 'Stephen King',

};

Object.keys(myBook); // ['title', 'author'];

Exemple

Les clés d’un objet sont souvent de type String.

Les clés d’un objet sont accessibles via la fonction Object.keys(obj) qui retourne un tableau de clés.

51

Les objets - caractéristiques

52 of 68

Caractéristiques

Les tableaux et les objets sont copiés par leur référence… alors que les primitives sont copiés par leur valeur.

var a = { x: 0 };

var b = a;

b.x = 1;

console.log('a ',a); // a {x: 1}

console.log('b ',b); // b {x: 1}

Exemple avec les objets

L’objet a pointe vers l’objet b, quand on modifie b, l’objet a est modifié aussi, ils pointent vers la même référence.

52

Les objets - caractéristiques

53 of 68

Caractéristiques

var a = 2;

var b = a;

b = b+ 3;

console.log('a ',a); // a 2

console.log('b ',b); // b 5

Exemple avec les primitives (types de données basique)

On a copié la valeur de a dans b, mais les deux variables ne sont pas liées, si on change la valeur de b, a n’est pas changé

53

Les objets - caractéristiques

54 of 68

Définition - Méthodes

Les méthodes sont un peu comme des fonctions, MAIS elles sont liées à un objet. Elles permettent de faire des opérations sur cet objet.

On les a déjà rencontrées et utilisées plusieurs fois…

avec les strings, les tableaux et maintenant avec les objets...

C’est parce qu’en JavaScript “tout est un objet…”

54

Les objets - méthodes

55 of 68

var person = {

name : 'Simon' ,

sayHello : function() {

console.log('Hello');

},

} ;

55

Les objets - méthodes - syntaxe

méthode

accolade ouvrante

nom de la méthode

deux points

accolade fermante

paire

clé/valeur

virgule

56 of 68

Définir une méthode - déclaration de l’objet

Exemple

var myBook = {

title: 'Salem',

author: 'Stephen King',

logType: function() {

console.log('This is a book');

},

};

myBook.logType(); // "This is a book”

Une méthode s’écrit comme une propriété d’un objet, sauf que la valeur de cette propriété est une fonction.

56

Les objets - définir une méthode

57 of 68

Définir une méthode - ajout de propriété

Exemple

var myCar = {

brand: 'Ford',

make: 'Mustang',

};

myCar.drive = function() {

console.log(' Vroom ');

};

On peut ajouter une méthode après la déclaration de l’objet, comme on l’a fait avec les propriétés.

57

Les objets - définir une méthode

58 of 68

Appeler une méthode

Exemple

var human = {

name: 'Yveline',

sayHi: function() {

console.log('Hi !');

},

};

human.sayHi() // "Hi !”

Une méthode est une propriété d’un objet, on y accède avec un point/des cochets et puisque c’est une fonction, on l’appelle avec les parenthèses.

58

Les objets - définir une méthode

59 of 68

Rappel méthode push sur les tableaux

Exemple

var list = [];

list.push(1);

list.push(2);

console.log(list); // [1,2]

Certaines méthodes peuvent prendre des arguments, souvenez-vous la méthode sur les tableaux...

59

Les objets - définir une méthode

60 of 68

Exercices

Introduction au JavaScript

60

OBJECTS MEMO

var computer = {

brand: 'Apple',

color: 'grey'

};

computer.price = 2000;

console.log(computer);

// OUTPUT: {

// brand: 'Apple',

// color: 'grey',

// price: 2000

// };

  • Dans chaque dossier de session, il y a d’autres dossiers d’exercices
  • Chaque dossier d’exercice a un README.md où se trouvent les instructions
  • Toujours ouvrir index.html dans le navigateur
  • Ouvrir la console du navigateur
  • Rafraîchir la la page après chaque changement

61 of 68

Récapitulatif

61

  • Les tableaux ou Array sont une liste d’éléments. Ces éléments peuvent avoir des types différents.

var arr = ['hello', true, 4, [1, 2], { age: 31 }];

  • Les indices, ou index, commencent à 0 et permettent d’accéder aux éléments du tableau.
  • Les Array ont des méthodes en JavaScript :
    • .length
    • .pop
    • .push
    • ...

62 of 68

var myBook = {

title: 'salem ',

author: 'Stephen King',

};

Récapitulatif

62

  • Les objets ou Object sont des structures de données composées d’un couple clé / valeur.
  • Les valeurs peuvent être de tout types : undefined, null, Boolean, String, Number, Array ou même Object.
  • On peut accéder à la valeur par la clé, et de ce fait lire (get) ou écrire (set).

myBook.title; // “salem ” => GET

myBook.title = 'Salem'; // => SET

myBook.title; // “Salem” => GET

63 of 68

63

ANNEXES

64 of 68

Astuces

Dans un éditeur de code si vous écrivez le nom d’un objet suivi d’un point, l'éditeur vous indiquera les propriétés et les méthodes disponibles sur cet objet ainsi qu’une documentation pour les méthodes.

64

Les objets - documentation des méthodes

65 of 68

Regardez ces liens

65

Pour aller plus loin

66 of 68

Ajouter des éléments au début d’un tableau

On utilise la méthode unshift pour ajouter un ou plusieurs éléments au début d’un tableau.

var arr = [1, 2, 3];

Quand on l’appelle la méthode retourne la longueur du nouveau tableau

arr.unshift(0); // 4

console.log(arr); // [0,1,2,3]

66

Les tableaux - propriétés et méthodes

67 of 68

Retirer le 1er élément d’un tableau

On utilise la méthode shift pour retirer le premier élément d’un tableau, celui à l’indice 0.

var arr = [1, 2, 3];

Quand on l’appelle la méthode retourne l’élément supprimé

arr.shift(); // 1

console.log(arr); // [2,3]

67

Les tableaux - propriétés et méthodes

68 of 68

Quand utiliser la “notation crochets” ?

Si le nom de la clé contient des caractères spéciaux

var obj = {};

obj['first-property'] = 1;

obj['second#property'] = 2;

68

Les objets - ajout de propriétés