
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
Posting Komentar