A mix of computer settings

Codistwa

Learn Les variables et les types

en Programmation

Reading time : 5 min

Last update : February 10th, 2022

Lorsque l'on parle de variables, on pense aux valeurs et aux types. Il existe des languages fortement typés comme C ou encore Java et des langages faiblement / dynamiquement typés comme JavaScript ou Python. Il y a une nomenclature à respecter pour le nommage. Il faut déjà ne pas utiliser de mots réservés, c'est-à-dire déjà utilisés par le langage de programmation (par exemple Boolean), dans ce cas, le programme renverra une erreur.

Half off everything 2manning

Définition

Une variable possède un nom, un type et une adresse mémoire (zone mémoire où l'on stocke l'information). Une variable va contenir des nombres entiers, nombres décimaux, chaines de caractères (textes), etc.

Quand on veut mettre une valeur dans une variable, on procède à une affection. L'affection se lit de la droite vers la gauche. L'affection se fait grâce à l'opérateur =.

Code

javascriptjavascript
1const welcome = 'Hello';
2

Types

Un langage de programmation fortement typé signifique que l'on définit explicitement le type de la variable durant la déclaration. Un langage de programmation faiblement typé / dynamiquement typé signifie une grande flexibilité lors de la déclation des variables. En effet, on ne déclare pas en le type en dur, le programme va le déterminer de façon automatique durant l'exécution.

Les types de JavaScript sont assez particuliers car c'est un mélange entre types dits Primitifs et le type Objet.

Les types primitifs : Number, String, Boolean, Null, Undefined et Symbol Le type Object.

Les types de Python sont : numériques, les séquences, les dictionnaires, les classes, les instances et les exceptions. C et C++ ont une trentaine de types : char, float, int double, long int ...

Code

javascriptjavascript
1const welcome = 'Hello';
2let length = 2;
3const isHidden = false;

Concaténation

On peut assembler plusieurs chaines de caractères ensemble à l'aide de ce qu'on appelle la concaténation. Parfois il faudra convertir le type soit-même pour que cela fonctionne sinon ce sera fait automatiquement par le langage. Cela est utile pour créer une phrase par exemple.

Code

javascriptjavascript
1const presentation = 'I have';
2let age = 32;
3
4console.log(presentation + ' ' + age); // I have 32
5console.log(`${presentation} ${age}`); // I have 32

Mutation

Selon les types, on peut parfois changer la valeur, c'est ce qu'on appelle la mutation. Ce n'est pas le cas pour les constantes. Privilégez les constantes afin d'éviter un écrasement accidentel de la valeur de la variable.

Code

javascriptjavascript
1const welcome = 'Hello';
2let length = 2;
3
4welcome = 't';
5length = 3;
6
7console.log(welcome); // error
8console.log(length); // no error

Conversion

On peut modifier le type d'une variable. Dans ce cas ont dit qu'on caste la variable. Cela peut être utile mais en général il vaut mieux éviter. Lorsque que la conversion a échoué, notamment avec les nombres, l'erreur NaN (Pas Un Nombre) va apparaître. Par exemple en JavaScript on peut effecter une conversion d'une chaine de caractères avec un int si dans la chaine de caractères c'est marqué '5' mais pas 'five' à l'aide du ==.

Code

javascriptjavascript
1console.log('3' + 2); // 32
2console.log('3' - 2); // 1
3console.log('five' * 2); // NaN

Portée

L'emplacement d'une variable est important car selon l'endroit, elle sera accessible ou non par une fonction. C'est ce qu'on appelle la portée de la variable. Il y a 2 types de portée :

  • la portée globale : accessible partout dans le programme
  • la portée locale : accessible uniquement dans une fonction

La bonne pratique est d'employer surtout des variables locales mais ce n'est pas toujours possible. Auquel cas il faudra faire attention à donner des noms différents afin d'éviter une valeur écrasée ou erreur du programme (par exemple avec une constante).

Code

javascriptjavascript
1const doors = 5; // global
2
3function getDoors() {
4  const bathrooms = 1; // local
5  console.log(doors);
6}
7
8function getBathRooms() {
9  console.log(bathroom); // error
10}
11
12console.log(getDoors()); // 5
13console.log(getBathRooms()); // undefined

Conventions de nommage

Vous serez / êtes sans doute amené(e) à travailler avec d'autres développeur.ses, il est donc important de nommer les variables de façon de explicite. Il faut mettre de vrais mots par exemple, pas juste des lettres. De plus, selon les langages et le type de variable, la norme est d'utiliser le camelCase, PascalCase ou encore snake_case. Ces termes semblent exotiques mais si vous observez bien, on devine l'usage grâce à la façon dont ils sont écrits.

  • camelCase: maVariable

  • PascalCase: MaVariable

  • snake_case: ma_variable

Pour Python par exemple, la bonne pratique est d'utiliser le snake_case tandis que JavaScript le camelCase ou PascalCase.

Pour revenir à la convention, on fera attention au type pour trouver le bon nom. Il faut savoir qu'il peut être très difficile de trouver un nom correct, ne vous découragez pas. Privilégiez l'anglais afin de rester consistent avec le reste du langage.

  • pour un booléen on va définir le nom de la variable par rapport à son état (true / false)

Code

javascriptjavascript
1// bad
2const str = 'Marie';
3// good
4const firstName = 'Marie';
5
6// bad 
7const zero = 0;
8
9// good
10const total = 0;
11
12// bad
13const open = true;
14const hidden = false;
15
16// good
17const isOpen = true;
18const isHidden = false;
Print booksmanning

Les variables font partie de l'essence de la programmation. Il existe toujours des types, mais selon les langages, ils sont assignés dynamiquement ou en dur. Elles ont une portée, il faut donc faire attention à l'endroit où elles sont créées afin d'éviter des collisions. On peut les modifier, les concaténer, les caster. Il y a des mots réservés par le langage de programmation, donc on ne peut pas les nommer n'importe comment sinon une erreur est affichée. Il convient de respecter les conventions de nommage.