Const JavaScript


Keyword const diperkenalkan di ES6 (2015).

Variabel yang didefinisikan dengan const idak dapat dideklarasikan ulang.

Variabel yang didefinisikan dengan const tidak dapat ditugaskan kembali.

Variabel yang didefinisikan dengan const memiliki Block Scope.


Tidak Dapat Ditugaskan Kembali

Sebuah variabel const tidak dapat ditugaskan kembali.


Contoh

const PI = 3.141592653589793;
PI = 3.14;      // Ini akan menghasilkan error
PI = PI + 10;   // Ini juga akan menghasilkan error

Harus Ditugaskan

Variabel const JavaScript harus diberi nilai saat dideklarasikan.


Benar

const PI = 3.14159265359;

Salah

const PI;
PI = 3.14159265359;

Kapan menggunakan const JavaScript?

Sebagai aturan umum, selalu deklarasikan variabel dengan const kecuali kita tahu bahwa nilainya akan berubah.

Gunakan const saat mendeklarasikan:

  • Array baru
  • Objek baru
  • Function baru
  • RegExp baru

Objek dan Array Konstan

Keyword const sedikit menyesatkan.

Karena tidak menentukan nilai konstan dan mendefinisikan referensi konstan ke nilai.

Karena itu, kita tidak dapat:

  • Menetapkan kembali nilai konstan
  • Menetapkan ulang array konstan
  • Menetapkan kembali objek konstan

Tapi kita bisa:

  • Mengubah elemen array konstan
  • Mengubah properti objek konstan

Array Konstan

Kita dapat mengubah elemen array konstan:

// Kita dapat membuat array konstan:
const cars = ["Esemka", "Volvo", "BMW"];

// Kita dapat mengubah elemen:
cars[0] = "Toyota";

// Kita dapat menambahkan elemen:
cars.push("Audi");

Tetapi kita tidak dapat menetapkan ulang array:

const cars = ["Esemka", "Volvo", "BMW"];

cars = ["Toyota", "Volvo", "Audi"];    // ERROR

Objek Konstan

Kita dapat mengubah properti objek konstan:

// Kita dapat membuat objek const:
const car = {type:"Fiat", model:"500", color:"white"};

// Kita dapat mengubah properti:
car.color = "blue";

// Kita dapat menambah properti
car.owner = "Ian";

Tetapi kita tidak dapat menetapkan kembali objek:

const car = {type:"Fiat", model:"500", color:"white"};

car = {type:"Volvo", model:"EX60", color:"blue"};    // ERROR

Dukungan Browser

Keyword const tidak didukung di Internet Explorer 10 atau yang lebih lama.

Tabel dibawah ini mendefinisikan versi browser pertama dengan dukungan penuh untuk keyword const:


Block Scope

Mendeklarasikan variabel dengan const mirip dengan let ketika ke Block Scope .

X yang dideklarasikan di dalam blok, dalam contoh dibawah ini, tidak sama dengan x yang dideklarasikan di luar blok:

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

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

// Di sini x adalah 10

Mendeklarasikan ulang

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

var x = 2;     // Diperbolehkan
var x = 3;     // Diperbolehkan
x = 4;         // Diperbolehkan

Mendeklarasikan ulang variabel var atau let yang sudah ada ke const dalam cakupan yang sama, tidak diperbolehkan:

var x = 2;     // Diperbolehkan
const x = 2;   // Tidak diperbolehkan

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

{
const x = 2;   // Diperbolehkan
const x = 2;   // Tidak diperbolehkan
}

Menugaskan kembali variabel const yang ada dalam cakupan yang sama, tidak diperbolehkan:

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

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

Mendeklarasikan ulang variabel dengan const dalam lingkup lain atau di blok lain, diperbolehkan:

const x = 2;       // Diperbolehkan

{
  const x = 3;   // Diperbolehkan
}

{
  const x = 4;   // Diperbolehkan
}

Hoisting Const

Variabel didefinisikan dengan var hoisting dan dapat diinisialisasi setiap saat.

Artinya, kita dapat menggunakan variabel sebelum dideklarasikan:

merkMobil = "Volvo";
var merkMobil;

Variabel yang didefinisikan dengan const hoisting, tetapi tidak diinisialisasi.

Artinya, menggunakan variabel const sebelum dideklarasikan akan menghasilkan ReferenceError:

alert (merkMobil);
const merkMobil = "Volvo";

Sumber referensi: w3schools

Komentar