Let JavaScript


Keyword let diperkenalkan di ES6 (2015) .

Variabel yang didefinisikan dengan let tidak dapat dideklarasikan ulang.

Variabel yang didefinisikan dengan let harus dideklarasikan sebelum digunakan.

Variabel didefinisikan dengan let memiliki Block Scope.


Tidak Dapat Dideklarasikan Ulang

Variabel yang didefinisikan dengan let tidak dapat dideklarasikan ulang.

Kita tidak dapat secara tidak sengaja mendeklarasikan ulang suatu variabel.

Dengan let kita tidak dapat melakukan ini:

let x = "Ian Zune";

let x = 0;

// SyntaxError: 'x' sudah dideklarasikan

Dengan var kita dapat:

var x = "Ian Zune";

var x = 0;

Block Scope

Sebelum ES6 (2015), JavaScript hanya memiliki Global Scope dan Function Scope.

ES6 memperkenalkan dua keyword JavaScript baru yang penting: let dan const.

Kedua keyword ini menyediakan Block Scope dalam JavaScript.

Variabel yang dideklarasikan di dalam blok {} tidak dapat diakses dari luar blok.


Contoh

{
  let x = 2;
}
// x tidak dapat digunakan di sini

Variabel yang dideklarasikan dengan keyword var tidak boleh memiliki block scope.

Variabel yang dideklarasikan di dalam blok {} dapat diakses dari luar blok.


Contoh

{
  var x = 2;
}
// x bisa digunakan di sini

Mendeklarasikan Ulang Variabel

Mendeklarasikan ulang variabel menggunakan keyword var dapat menimbulkan masalah.

Mendeklarasikan ulang variabel di dalam blok juga akan mendeklarasikan ulang variabel di luar blok:

var x = 10;
// Di sini x adalah 10

{
var x = 2;
// Di sini x adalah 2
}

// Di sini x adalah 2

Mendeklarasikan ulang variabel menggunakan keyword let dapat menyelesaikan masalah ini.

Mendeklarasikan ulang variabel di dalam blok tidak akan mendeklarasikan ulang variabel di luar blok:

let x = 10;
// Di sini x adalah 10

{
let x = 2;
// Di sini x adalah 2
}

// Di sini x adalah 10

Dukungan Browser

Keyword let tidak sepenuhnya didukung di Internet Explorer 11 atau versi sebelumnya.

Tabel berikut mendefinisikan versi browser pertama dengan dukungan penuh untuk keyword let:


Mendeklarasikan ulang

Mendeklarasikan ulang variabel JavaScript dengan var diperbolehkan di mana saja dalam suatu program:

var x = 2;
// Sekarang x adalah 2

var x = 3;
// Sekarang x adalah 3

Dengan let, mendeklarasikan ulang variabel di blok yang sama tidak diperbolehkan:

var x = 2;    // Diperbolehkan
let x = 3;    // Tidak diperbolehkan

{
let x = 2;    // Diperbolehkan
let x = 3     // Tidak diperbolehkan
}

{
let x = 2;    // Diperbolehkan
var x = 3     // Tidak diperbolehkan
}

Mendeklarasikan ulang variabel dengan let di blok lain diperbolehkan:

let x = 2;    // Diperbolehkan

{
let x = 3;    // Diperbolehkan
}

{
let x = 4;    // Diperbolehkan
}

Let Hoisting

Variabel didefinisikan dengan var yang di hoisting ke atas dan dapat diinisialisasi setiap saat.

Artinya, kita dapat menggunakan variabel sebelum dideklarasikan:

merkMobil = "Volvo";
var merkMobil;

Variabel yang didefinisikan dengan let juga di hoisting ke atas blok, tetapi tidak diinisialisasi.

Artinya, menggunakan variabel let sebelum dideklarasikan akan menghasilkan ReferenceError.


Contoh

merkMobil = "Lexus";
let merkMobil = "Volvo";

Sumber referensi: w3schools

Komentar