Recherche…


Syntaxe

  • var foo [= valeur [, foo2 [, foo3 ... [, fooN]]]];
  • let bar [= valeur [, bar2 [, foo3 ... [, barN]]]];
  • const baz = valeur [, baz2 = valeur2 [, ... [, bazN = valeurN]]];

Remarques

Voir également:

Réaffectation des constantes

Vous ne pouvez pas réaffecter des constantes.

const foo = "bar";
foo = "hello";

Impressions:

Uncaught TypeError: Assignment to constant.

Modification des constantes

Déclarer une variable const empêche uniquement que sa valeur soit remplacée par une nouvelle valeur. const ne met aucune restriction sur l'état interne d'un objet. L'exemple suivant montre que la valeur d'une propriété d'un objet const peut être modifiée et que même de nouvelles propriétés peuvent être ajoutées, car l'objet affecté à la person est modifié, mais pas remplacé .

const person = { 
    name: "John" 
};
console.log('The name of the person is', person.name);

person.name = "Steve";
console.log('The name of the person is', person.name);

person.surname = "Fox";
console.log('The name of the person is', person.name, 'and the surname is', person.surname);

Résultat:

The name of the person is John
The name of the person is Steve
The name of the person is Steve and the surname is Fox

Dans cet exemple, nous avons créé un objet constant appelé person et nous avons réaffecté la propriété person.name et créé une nouvelle propriété person.surname .

Déclaration et initialisation des constantes

Vous pouvez initialiser une constante à l'aide du mot clé const .

const foo = 100;
const bar = false;
const person = { name: "John" };
const fun = function () = { /* ... */ };
const arrowFun = () => /* ... */ ;

Important
Vous devez déclarer et initialiser une constante dans la même instruction.

Déclaration

Il existe quatre méthodes principales pour déclarer une variable en JavaScript: en utilisant les mots-clés var , let ou const , ou sans aucun mot-clé (déclaration "bare"). La méthode utilisée détermine la portée résultante de la variable ou la réaffectabilité dans le cas de const .

  • Le mot clé var crée une variable de portée de fonction.
  • Le mot let clé let crée une variable block-scope.
  • Le mot-clé const crée une variable d'étendue de bloc qui ne peut pas être réaffectée.
  • Une déclaration nue crée une variable globale.
var a = 'foo';    // Function-scope
let b = 'foo';    // Block-scope
const c = 'foo';  // Block-scope & immutable reference

N'oubliez pas que vous ne pouvez pas déclarer de constantes sans les initialiser simultanément.

const foo; // "Uncaught SyntaxError: Missing initializer in const declaration"

(Un exemple de déclaration de variable sans mot-clé n'est pas inclus ci-dessus pour des raisons techniques. Continuez à lire pour voir un exemple.)

Types de données

Les variables JavaScript peuvent contenir de nombreux types de données: nombres, chaînes, tableaux, objets, etc.:

// Number
var length = 16;

// String
var message = "Hello, World!"; 

// Array
var carNames = ['Chevrolet', 'Nissan', 'BMW']; 

// Object
var person = {
    firstName: "John",
    lastName: "Doe"
}; 

JavaScript a des types dynamiques. Cela signifie que la même variable peut être utilisée comme différents types:

var a;              // a is undefined
var a = 5;          // a is a Number
var a = "John";     // a is a String

Indéfini

La variable déclarée sans valeur aura la valeur undefined

var a;

console.log(a); // logs: undefined

Essayer de récupérer la valeur de variables non déclarées donne lieu à une erreur ReferenceError. Cependant, le type des variables non déclarées et unitialisées est "non défini":

var a;
console.log(typeof a === "undefined"); // logs: true
console.log(typeof variableDoesNotExist === "undefined"); // logs: true

Affectation

Pour attribuer une valeur à une variable précédemment déclarée, utilisez l'opérateur d'affectation =

a = 6;
b = "Foo";

Comme alternative à la déclaration et à l'affectation indépendantes, il est possible d'effectuer les deux étapes dans une seule déclaration:

var a = 6;
let b = "Foo";

C'est dans cette syntaxe que les variables globales peuvent être déclarées sans mot-clé; si l'on déclarait une variable nue sans assignation immédiatement après, l'interprète ne serait pas en mesure de différencier les déclarations globales a; des références aux variables a; .

c = 5;
c = "Now the value is a String.";
myNewGlobal;    // ReferenceError

Notez cependant que la syntaxe ci-dessus est généralement déconseillée et n'est pas conforme au mode strict. Cela évite le scénario dans lequel un programmeur supprime par inadvertance un mot-clé let ou var de son instruction, créant accidentellement une variable dans l'espace de noms global sans s'en rendre compte. Cela peut polluer l'espace de noms global et le conflit avec les bibliothèques et le bon fonctionnement d'un script. Par conséquent, les variables globales doivent être déclarées et initialisées à l'aide du mot-clé var dans le contexte de l'objet window, afin que l'intention soit explicitée.

De plus, les variables peuvent être déclarées plusieurs à la fois en séparant chaque déclaration (et l’affectation de valeur facultative) par une virgule. En utilisant cette syntaxe, les mots-clés var et let ne doivent être utilisés qu'une seule fois au début de chaque instruction.

globalA = "1", globalB = "2";
let x, y = 5;
var person = 'John Doe',
    foo,
    age = 14,
    date = new Date(); 

Notez dans l'extrait de code précédent que l'ordre dans lequel les expressions de déclaration et d'affectation apparaissent ( var a, b, c = 2, d; ) n'a pas d'importance. Vous pouvez librement mélanger les deux.

La déclaration de fonction crée également des variables.

Opérations mathématiques et affectation

Incrémenter de

var a = 9,  
b = 3;  
b += a;  

b sera maintenant 12

C'est fonctionnellement le même que

b = b + a; 

Décrémenter par

var a = 9,  
b = 3;  
b -= a;  

b sera maintenant 6

C'est fonctionnellement le même que

b = b - a;  

Multiplier par

var a = 5,  
b = 3;  
b *= a;  

b va maintenant être 15

C'est fonctionnellement le même que

b = b * a;  

Diviser par

var a = 3,  
b = 15;  
b /= a;  

b va maintenant être 5

C'est fonctionnellement le même que

b = b / a;  

7

Elevé au pouvoir de

var a = 3,  
b = 15;  
b **= a;  

b va maintenant être 3375

C'est fonctionnellement le même que

b = b ** a;  


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow