Mots-clés JavaScript var, let et const-ES6

Lors de l'utilisation de js pour le développement front-end, les mots-clés var, let et const sont toujours inséparables. Leur fonction est de déclarer des variables / constantes.

Tout d'abord, nous devons savoir que les mots-clés let et const sont ajoutés dans ES2015 (ES6).
var: déclarer la variable
let: déclarer la variable
const dans le bloc de déclaration - déclarer la constante (elle ne peut pas être modifiée une fois affectée) en
fonction du type de déclaration et peut être divisée en:
variable de déclaration: var, let
déclaration constante: const

Un mot-clé var

  1. Valable dans la portée globale
  2. Peut être déclaré plusieurs fois
  3. Promotion variable

Deux, laissez
l'utilisation de base du mot clé :

{
    
    
  let a = 0;
  a   // 0
}
a   // 报错 ReferenceError: a is not defined

Le let valide
dans le bloc de code est valide dans le bloc de code et le var est valide dans la portée globale:

{
    
    
  let a = 0;
  var b = 1;
}
a  // ReferenceError: a is not defined
b  // 1


Ne soyons pas déclarés à plusieurs reprises. Let ne peut être déclaré qu'une seule fois. Var peut être déclaré plusieurs fois:

let a = 1;
let a = 2;
var b = 3;
var b = 4;
a  // Identifier 'a' has already been declared
b  // 4
for 循环计数器很适合用 let

for (var i = 0; i < 10; i++) {
    
    
  setTimeout(function(){
    
    
    console.log(i);
  })
}
// 输出十个 10
for (let j = 0; j < 10; j++) {
    
    
  setTimeout(function(){
    
    
    console.log(j);
  })
}
// 输出 0123456789

La variable i est déclarée avec var et est valide dans la portée globale, il n'y a donc qu'une seule variable i dans le global. Chaque fois que vous bouclez, le i dans le minuteur setTimeout fait référence à la variable globale i et les dix setTimeout dans le loop sont dans la boucle Il est exécuté après la fin, donc le i à ce moment est tout 10.
La variable j est déclarée avec let, et le j courant n'est valide que dans le tour courant de la boucle. Le j dans chaque boucle est en fait une nouvelle variable, donc le j dans le minuteur setTimeout est en fait une variable différente, c'est-à-dire 12345 est sorti à la fin. (Si la variable j de chaque boucle est re-déclarée, comment connaître la valeur de la boucle précédente? C'est parce que le moteur JavaScript se souviendra de la valeur de la boucle précédente).

Il n'y a pas de promotion variable
let Il n'y a pas de promotion variable, var sera une promotion variable:

console.log(a);  //ReferenceError: a is not defined
let a = "apple";
 
console.log(b);  //undefined
var b = "banana";

La variable b est déclarée avec var pour avoir une promotion de variable, donc lorsque le script commence à s'exécuter, b existe déjà, mais n'a pas encore été affecté, donc indéfini sera affiché.
La variable a est déclarée avec let pour déclarer qu'il n'y a pas de promotion de variable. Avant que la variable a ne soit déclarée, a n'existe pas, donc une erreur sera signalée.
3. Le mot-clé
const const déclare une variable en lecture seule et il n'est pas autorisé à changer après la déclaration. Cela signifie qu'une fois qu'il est déclaré, il doit être initialisé, sinon une erreur sera signalée.
Utilisation de base:

const PI = "3.1415926";
PI  // 3.1415926

const MY_AGE;  // SyntaxError: Missing initializer in const declaration    

Zone morte temporaire:

var PI = "a";
if(true){
    
    
  console.log(PI);  // ReferenceError: PI is not defined
  const PI = "3.1415926";
}

ES6 stipule clairement que s'il y a un let ou une const dans un bloc de code, le bloc de code formera une portée fermée pour les variables déclarées par ces commandes depuis le début du bloc. Dans le bloc de code, l'utiliser avant de déclarer la variable PI entraînera une erreur.

Je suppose que tu aimes

Origine blog.csdn.net/Wangdiankun/article/details/109769871
conseillé
Classement