Section Artikel
- 1 ECMAScript 2015
- 2 Lingkup Blok
- 3 Ditugaskan saat Dideklarasikan
- 4 Bukan Konstanta Nyata
- 5 Nilai Primitif
- 6 Objek Konstan dapat Berubah
- 7 Array Konstanta dapat Berubah
- 8 Dukungan Browser
- 9 Mendeklarasikan ulang
- 10 Hoisting
ECMAScript 2015
ES2015 memperkenalkan dua kata kunci JavaScript baru yang penting: let dan const.
Variabel yang didefinisikan dengan const berperilaku seperti variabel let, kecuali variabel const tidak dapat ditetapkan kembali.
Contoh:
JavaScript const
Anda tidak dapat mengubah nilai primitif.
try { const PI = 3.141592653589793; PI = 3.14; } catch [err] { document.getElementById["demo"].innerHTML = err; }
Lingkup Blok
Mendeklarasikan variabel dengan const mirip dengan let ketika menjadi Lingkup Blok.
X yang dideklarasikan di blok, dalam contoh ini, tidak sama dengan x yang dideklarasikan di luar blok.
Contoh:
Mendeklarasikan Variabel Menggunakan const
var x = 10; // Here x is 10 { const x = 2; // Here x is 2 } // Here x is 10 document.getElementById["demo"].innerHTML = x;
Ditugaskan saat Dideklarasikan
Variabel const JavaScript harus diberi nilai ketika dideklarasikan, contoh:
Salah
const PI; PI = 3.14159265359;
Benar
const PI = 3.14159265359;
Bukan Konstanta Nyata
Kata kunci const sedikit menyesatkan.
Kata kunci ini TIDAK mendefinisikan nilai konstan tetapi mendefinisikan referensi konstan ke sebuah nilai.
Karena itu, kita tidak dapat mengubah nilai primitif konstan, tetapi kita dapat mengubah properti objek konstan.
Nilai Primitif
Jika kita menetapkan nilai primitif ke sebuah konstanta, kita tidak dapat mengubah nilai primitif tersebut.
Contoh:
JavaScript const
Anda tidak dapat mengubah nilai primitif.
try { const PI = 3.141592653589793; PI = 3.14; } catch [err] { document.getElementById["demo"].innerHTML = err; }
Objek Konstan dapat Berubah
Tetapi kita dapat mengubah properti objek konstan.
Contoh:
JavaScript const
Mendeklarasikan objek konstan TIDAK membuat properti objek tidak bisa diubah:
// Create an object: const car = {type:"Fiat", model:"500", color:"white"}; // Change a property: car.color = "red"; // Add a property: car.owner = "Johnson"; // Display the property: document.getElementById["demo"].innerHTML = "Car owner is " + car.owner;
Tetapi Anda TIDAK dapat menetapkan ulang objek konstan.
Contoh:
JavaScript const
Tapi Anda TIDAK dapat menetapkan ulang objek konstan:
try { const car = {type:"Fiat", model:"500", color:"white"}; car = {type:"Volvo", model:"EX60", color:"red"}; } catch [err] { document.getElementById["demo"].innerHTML = err; }
Array Konstanta dapat Berubah
Anda dapat mengubah elemen array konstanta.
Contoh:
JavaScript const
Mendeklarasikan array konstan TIDAK membuat elemen tidak berubah:
// Create an Array: const cars = ["Saab", "Volvo", "BMW"]; // Change an element: cars[0] = "Toyota"; // Add an element: cars.push["Audi"]; // Display the Array: document.getElementById["demo"].innerHTML = cars;
Tetapi Anda TIDAK dapat menetapkan ulang array konstan:
JavaScript const
Anda TIDAK dapat menetapkan kembali array konstan:
try { const cars = ["Saab", "Volvo", "BMW"]; cars = ["Toyota", "Volvo", "Audi"]; } catch [err] { document.getElementById["demo"].innerHTML = err; }
Dukungan Browser
Kata kunci const tidak didukung di Internet Explorer 10 atau versi yang lebih lama.
Tabel berikut menjelaskan versi browser pertama dengan dukungan penuh untuk kata kunci const:
Opera | ||||
Chrome 49 | IE / Edge 11 | Firefox 36 | Safari 10 | Opera 36 |
Mar, 2016 | Oct, 2013 | Feb, 2015 | Sep, 2016 | Mar, 2016 |
Mendeklarasikan ulang
Mendeklarasikan ulang variabel JavaScript diperbolehkan di mana saja dalam program, contoh:
var x = 2; // Allowed var x = 3; // Allowed x = 4; // Allowed
Mendeklarasikan ulang atau menetapkan ulang var yang ada atau membiarkan variabel menjadi const, dalam cakupan yang sama, atau dalam blok yang sama, tidak diperbolehkan. Contoh:
var x = 2; // Allowed const x = 2; // Not allowed { let x = 2; // Allowed const x = 2; // Not allowed }
Mendeklarasikan ulang atau menetapkan ulang variabel const yang ada, dalam cakupan yang sama, atau dalam blok yang sama, tidak diperbolehkan. Contoh:
const x = 2; // Allowed const x = 3; // Not allowed x = 3; // Not allowed var x = 3; // Not allowed let x = 3; // Not allowed { const x = 2; // Allowed const x = 3; // Not allowed x = 3; // Not allowed var x = 3; // Not allowed let x = 3; // Not allowed }
Mendeklarasikan ulang variabel dengan const, di lingkup lain, atau di blok lain, diperbolehkan.
Contoh:
const x = 2; // Allowed { const x = 3; // Allowed } { const x = 4; // Allowed }
Hoisting
Variabel yang ditentukan dengan var akan diangkat ke atas dan dapat diinisialisasi kapan saja [jika Anda tidak tahu apa itu Hoisting, baca Bab Hoisting tutorial pada web ini].
Artinya: Anda dapat menggunakan variabel sebelum dideklarasikan:
Contoh:
JavaScript Hoisting
Dengan var , Anda dapat menggunakan variabel sebelum dideklarasikan:
carName = "Volvo"; document.getElementById["demo"].innerHTML = carName; var carName;
Variabel yang ditentukan dengan konstanta diangkat ke atas blok, tetapi tidak diinisialisasi.
Artinya: Blok kode mengetahui adanya variabel, tetapi tidak dapat digunakan sampai dideklarasikan.
Menggunakan variabel const sebelum dideklarasikan akan menghasilkan SyntaxError.
Variabel berada dalam “zona mati sementara” dari awal blok hingga dideklarasikan.
Contoh:
Ini akan menghasilkan SyntaxError
JavaScript Hoisting
Dengan const , Anda tidak dapat menggunakan variabel sebelum dideklarasikan:
// Check the console, this next line will produce an error: carName = "Volvo"; document.getElementById["demo"].innerHTML = carName; const carName;