Les Variables

Voir la vidéo
Description Sommaire

N.B. : lors de la sortie des vidéos concernant la formation en Javascript, la déclaration des variables se faisaient avec le mot réservé var. Depuis 2015 (ECMA Script version 6), il est plus pertinant d'utiliser le mot réservé let. En effet, sans entrer dans les détails, var fournira une déclaration dont la portée est limitée à la fonction, globalement ou localement alors que avec let la portée est limitée au bloc dans lequel il est déclaré (c'est-à-dire entre les accolades). Dans les exercices présentés dans ce tutoriel la substitution de var par let ne devrait pas poser de problèmes mais vous pouvez aisément adapter vous mêmes le code afin d'obtenir le résultat que vous désirez. En ce qui concerne la portée des variables définit avec var ou let je vous invite à consulter la documentation de mdn à l'adresse suivante : developer.mozilla.org/ (la documentation est consultable en plusieurs langues).

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 algorithme.

Ecriture

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

var a = 2
var 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.

Enfin, une variable peut changer de valeur et de type au cours de l'éxécution de notre algorithme.

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

Les types de variables

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

Les nombres

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

Attention dans le cas des réels, on utilise un . pour marquer la partie décimale.

Les chaines de caractère

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

var a = "Salut les gens"
var b = 'Re-Salut les gens'

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

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

Les booléens

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

var vrai = true
var 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).

var eleves = ['Jean', 'Marc', 'Marion']
var 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.

var 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.

var 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 à 
null // 
NaN // 'not a number'

Typage faible

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

var a = '1' 
var 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.

Publié
Technologies utilisées
Auteur :
Grafikart
Partager