Rumah  >  Artikel  >  hujung hadapan web  >  Apakah perbezaan antara let, var atau const?

Apakah perbezaan antara let, var atau const?

PHPz
PHPzasal
2024-08-22 19:08:45498semak imbas

What are the differences between let, var or const?

Pembolehubah yang diisytiharkan menggunakan kata kunci var diskop kepada fungsi di mana ia dicipta, atau jika dicipta di luar mana-mana fungsi, kepada objek global. let dan const adalah berskop blok, bermakna ia hanya boleh diakses dalam set pendakap kerinting yang terdekat (fungsi, blok if-else atau gelung untuk).

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 membenarkan pembolehubah dinaikkan, bermakna ia boleh dirujuk dalam kod sebelum ia diisytiharkan. let dan const tidak akan membenarkan ini, sebaliknya melontarkan ralat.

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';

Mengisytiharkan semula pembolehubah dengan var tidak akan menimbulkan ralat, tetapi let dan const akan.

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 dan const berbeza dalam let itu membenarkan menetapkan semula nilai pembolehubah manakala const tidak.

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

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

Atas ialah kandungan terperinci Apakah perbezaan antara let, var atau const?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn