Les variables

Voir la vidéo
Description Sommaire

Les variables permettent de garder en mémoire une valeur lors de l'éxécution d'un script. Elles sont essentielles au bon fonctionnement de nos algorithmes.

Ecriture

Une variable peut être déclarée à l'aide du mot clef const ou let et ne doivent pas contenir de caractères spéciaux à l'exception des _.

const a = 2
const une_variable_plus_longue = "Ma super chaine"

Contrairement à d'autres langages de programmation il n'est pas nécessaire de mettre un ; à la fin des lignes en JavaScript (mais si vous voulez, vous pouvez ^^). L'interpréteur (ce qui va faire fonctionner notre code) va automatiquement détecter les fins de lignes et comprendre quand arrêter une instruction.

Une variable déclarée avec const ne peut se voir réassigner une valeur, par contre cela est possible avec une variable déclarée avec let

let a = 2
a = "Je suis une chaine maintenant !"

Cette différence permet d'éviter les erreurs en s'assurant, si on utilise const que la variable ne sera pas écrasée par la suite.

Les types de variables

Il est possible de stocker différents types d'information dans une variable.

Les nombres

const a = 2
const b = 3.4123
const c = -509
const d = 1/3

Attention dans le cas des réels, on utilise un . pour marquer la partie décimale. Il est aussi possible d'utiliser un _ pour séparer les milliers visuellement (ce caractère est en fait ignoré par l'interpréteur).

const a = 10_000

Les chaines de caractère

Les chaines de caractères permettent de stocker des mots / phrases. On les entoure de ', de " ou de ```

const a = "Salut les gens"
const b = 'Re-Salut les gens'
const c = `Re-Salut les gens`

Il n'y a pas de réelle différence entre les simples et doubles guillemets sauf si notre chaine de caractère contient des ' ou "

const a = "Ceci n'est pas poblématique"
const b = 'Ceci n\'est pas problématique'

Les \``, ou backticks permettent de faire plus facilement de la concaténation avec le symbole${}` mais permettent aussi d'avoir une chaine de caractère sur plusieurs lignes

const name = 'John'
const phrase = `Je m'appele ${name}`
const paragraph = `Je suis 
sur plusieurs
lignes !!`

Les booléens

Les booléens permettent de stocker une information qui sera soit vraie soit fausse

const vrai = true
const je_suis_faux = false

Les tableaux

Les tableaux permettent de stocker une liste d'information. Cette liste peut contenir n'importe quel autre type de variable (un tableau peut même contenir un autre tableau).

const eleves = ['Jean', 'Marc', 'Marion']
const demo = [true, 10, 'Marc']

Ensuite il est possible de récupérer un élément dans un tableau en utilisant la notation [i] où i est un nombre représentant l'index de l'élément à récupérer (cet index commence par 0)

eleves[0] // Jean
eleves[2] // Marion
demo[1] // 10
demo[18] // undefined

Les objets

Les objets permettent de stocker des informations plus complexes qu'une simple liste. Pour le moment, vous pouvez imaginer les objets comme une liste avec des index nommés.

const eleve = {
   clef: 'valeur',
   nom: 'Jean',
   age: 18,
   notes: [10, 4, 18] 
}

Dans un objet les "clefs" sont appellés des propriétés. Pour récupérer une valeur associée à une propriété il y a 2 notations possibles.

eleve.nom // Jean
eleve.notes // [10, 4, 18]
eleve.notes[1] // 4
// On peut aussi utiliser une notation proche de celle des tableaux
eleve['notes'] // [10, 4, 18]

De la même manière, les objets peuvent contenir des objets en valeur.

const eleve = {
    notes: {
        math: 18,
        francais: 14   
    }   
}
// Pour récupérer la note de math de l'élève on peut alors faire
eleve.notes.math // 18
eleves.nom // undefined

Types spéciaux

Enfin, lors de votre découverte du javascript vous allez rencontrer certaines variables qui correspondent à certains cas spécifiques

undefined // quand on essaie d'accéder à une variable ou valeur inexistante
null // représente l'absence intentionnelle de toute valeur
NaN // 'not a number'

Typage faible

En javascript le typage est faible, suivant les opérations, les variables peuvent changer implicitement de type.

const a = '1' 
const b = 1
a + b = '11'
// b est convertit en chaine de caractère implicitement
a * b = 1 
// a est convertit en nombre de manière implicite 
"Salut" * 3 // NaN, Not a number
// Attention aux opérations qui n'ont pas de sens :)
"43" > 1000 // false, 1000 est convertit en chaine implicitement et il compare l'ordre alphabétique

De manière générale on essaiera tant que possible de ne pas se reposer sur cette conversion implicite. Elle est plus souvent source de problèmes qu'autre chose.

Les commentaires

Vous pouvez commenter votre code en commençant une ligne par // ou en entourant votre code avec /* */

// Ceci est un commentaire sur une ligne
/*
 Et ici un commentaire
 sur plusieurs lignes
*/ 
Publié
Technologies utilisées
Auteur :
Grafikart
Partager