Memahami variabel di dalam sebuah bahasa pemrograman memang sangat penting, dengan adanya variabel kita menyimpan dan memanipulasi data menjadi data yang dinamis.
Kata kunci (keyword) untuk membuat variabel didalam bahsa pemrograman juga bed-beda, misalnya di PHP menggunakan simbol dollar ($), lalu kalau di Javascript menggunakan keyword var, let dan const.
Nah kali ini kita akan belajar memahami perbedaaan antara keyword var, let dan const di Javascript.
Berikut adalah ringkasan dari perbedaan ketiga keword tersebut.
Keyword | Scope | Re-declare | Re-assign | Hoisted |
var | no | yes | yes | yes |
let | yes | no | yes | no |
const | yes | no | no | no |
Table diatas adalah summary dari perbedaan ketiga keyword tersebut.
Sekarang mari kita coba belajar memahami menggunakan kodenya langsung.
Var Scope
var x = 10;
if(x === 10) {
var y = 20;
}
console.log(x); // 10
console.log(y); // 20
Dari kode diatas ‘y’ bisa kita akses dari luar block {} meskipun ‘y’ di deklarasikan di dalam sebuah blok {} karena keyword ‘var’ memiliki scope global.
Let Scope
let x = 10;
if(x === 10) {
let y = 20;
}
console.log(x); // 10
console.log(y); // error
Kode diatas akan menghasilkan error, karena ‘y’ kita deklarasikan didalam sebuah block scope menggunakan keyword ‘let’ dimana keyword ‘let’ memiliki block scope.
Const Scope
const x = 10;
if(x === 10) {
const y = 20;
}
console.log(x); // 10
console.log(y); // error
Kode diatas juga akan error karena ‘const’ memiliki blok scope.