January 15, 2018
Di sini saya akan membahas perbedaan antara var, let dan const dalam Javascript.
var adalah sebuah cara untuk mendeklarasikan sebuah variabel yang sudah ada sejak ES5 sedangkan let dan const adalah sebuah fitur baru untuk mendeklarasikan sebuah variabel yang ada pada ES6.
Berikut adalah pembahasan satu persatu tentang perbedaan dari masing-masing.
variabel yang di deklarasikan dengan var bersifat global selama masih dalam cakupan sebuah function dan nilai atau valuenya dapat di rubah.
Mari kita lihat contoh berikut :
function a() {
for (var i = 0; i < 5; i++) {
console.log('didalam loop ' + i) // i = 0, 1, 2, 3, 4
}
console.log('diluar loop, dalam cakupan function ' + i) // i = 5
}
a()
console.log('diluar function', i) // i is not defined
kita dapat melihat var i yang dipanggil diluar for akan tetapi masih didalam cakupan function dapat di definisikan, dan ketika kita memanggilnya diluar function var i tidak dapat di definisikan. Mari kita lihat contoh lainnya :
var x = 'teks'
function a() {
x = 'coba ubah teks 1'
function b() {
x = 'coba ubah teks 2'
console.log(x)
}
b()
}
a() // outpunya adalah 'coba ubah teks 2'
dari contoh ke dua kita dapat melihat nilai dari var x dapat di rubah, artinya nilai atau value variabel yang dideklasri dengan var dapat di rubah.
variabel yang dideklarasi dengan let nilai atau valuenya sama seperti var yaitu dapat di rubah dan bersifat block scope.
Mari kita coba dengan contoh yang sama :
function a() {
for (let i = 0; i < 5; i++) {
console.log('didalam loop ' + i) // i = 0, 1, 2, 3, 4
}
console.log('diluar loop, dalam cakupan function ' + i) // i is not defined
}
a()
console.log('diluar function', i) // i is not defined
dari contoh di atas kita dapat melihat let i tidak dapat di panggil di luar for dan di luar function a().
contoh ke dua :
let x = 'teks'
function a() {
x = 'coba ubah teks 1'
function b() {
x = 'coba ubah teks 2'
console.log(x)
}
b()
}
a() // outpunya adalah 'coba ubah teks 2'
sama seperti var kita dapat melihat nilai dari let x dapat di rubah, artinya nilai atau value variabel yang dideklasri dengan let dapat di rubah.
variabel yang dideklarikan dengan const sama seperti let yaitu bersifat block scope, perbedaannya adalah nilai atau value pada const tidak dapat dirubah seperti var dan let atau bersifat constant.
Mari kita lihat contoh berikut :
const a = 'teks'
a = 'rubah teks'
console.log(a) // Assignment to constant variable.
dapat di lihat kita telah merubah nilai dari const a dari “teks” ke “rubah teks” ketika variabel a yang dideklarasikan dengan const di panggil maka akan menghasilkan error.
Mari kita lihat contoh lain :
const list = {
name: 'risman',
}
list.name = 'kamarul'
console.log(list.name) // kamarul
dari contoh di atas kode dapat berjalan karena perubahan bukan dilakukan pada level variabel yang bersifat constant melainkan perubahan dilakukan pada level properties dari object tersebut.
var, let dan const dapat digunakan sesuai kebutuhannya masing-masing. Terimakasih telah membaca dan semoga bermanfaat.
Written by Kamarul Risman who lives in Lombok building useful things. You should follow him on Github