Maison  >  Article  >  interface Web  >  Quelles sont les différences entre let, var ou const ?

Quelles sont les différences entre let, var ou const ?

PHPz
PHPzoriginal
2024-08-22 19:08:45498parcourir

What are the differences between let, var or const?

Les variables déclarées à l'aide du mot-clé var sont limitées à la fonction dans laquelle elles sont créées, ou si elles sont créées en dehors de toute fonction, à l'objet global. let et const ont une portée de bloc, ce qui signifie qu'ils ne sont accessibles que dans l'ensemble d'accolades le plus proche (fonction, bloc if-else ou boucle for).

function foo() {
  // All variables are accessible within functions.
  var bar = 'bar';
  let baz = 'baz';
  const qux = 'qux';

  console.log(bar); // bar
  console.log(baz); // baz
  console.log(qux); // qux
}

console.log(bar); // ReferenceError: bar is not defined
console.log(baz); // ReferenceError: baz is not defined
console.log(qux); // ReferenceError: qux is not defined

if (true) {
  var bar = 'bar';
  let baz = 'baz';
  const qux = 'qux';
}

// var declared variables are accessible anywhere in the function scope.
console.log(bar); // bar
// let and const defined variables are not accessible outside the block they were defined in.
console.log(baz); // ReferenceError: baz is not defined
console.log(qux); // ReferenceError: qux is not defined

var permet de hisser les variables, ce qui signifie qu'elles peuvent être référencées dans le code avant d'être déclarées. let et const ne le permettront pas, mais généreront une erreur.

console.log(foo); // undefined

var foo = 'foo';

console.log(baz); // ReferenceError: can't access lexical declaration 'baz' before initialization

let baz = 'baz';

console.log(bar); // ReferenceError: can't access lexical declaration 'bar' before initialization

const bar = 'bar';

Redéclarer une variable avec var ne générera pas d'erreur, mais let et const le feront.

var foo = 'foo';
var foo = 'bar';
console.log(foo); // "bar"

let baz = 'baz';
let baz = 'qux'; // Uncaught SyntaxError: Identifier 'baz' has already been declared

let et const diffèrent en ce sens que let permet de réaffecter la valeur de la variable alors que const ne le fait pas.

// This is fine.
let foo = 'foo';
foo = 'bar';

// This causes an exception.
const baz = 'baz';
baz = 'qux';

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn