javascript dasar : variabel. var ,let ,const
javascript dasar : variabel var ,let ,const
Apa Itu VAR, LET, CONST
VAR, LET, CONST memiliki fungsi yang sama yaitu untuk membuat variabel. Semisal sobat memiliki variabel bernama angka, maka sobat bisa tulis menggunakan var angka, const angka, maupun let angka. Nah, kalau fungsinya sama, kenapa harus dipecah jadi tiga cara? Kenapa gak satu aja, kan lebih simple.
Meskipun mereka bertiga ini sama, tetapi faktanya mereka ini berbeda sifat. Berikut ini perbedaan dari VAR, LET, CONST:
Sistem Scope Yang Dianut
Mungkin hanya Javascript yang menganut 2 sistem scope berbeda, yaitu block scope dan functional scope. Block scope adalah cakupan variabel yang dipisahkan oleh setiap block, block yang dimaksud adalah kurung kurawal ({}). Jadi, jika setiap variabel yang hadir di dalam suatu block, misalnya perulangan, maka jika kita coba mengakses variabel tersebut dari luar perulangan, maka akan mengakibatkan error. Inilah yang dianut oleh LET dan CONST. Jika masih bingung, berikut ini contohnya:
for(let i=1; i<6; i++){
console.log(i)
}
Sudah bisa ditebak, dari code tersebut akan mengeluarkan output ke dalam console berupa angka 1 - 5. Lalu, bagaimana jika kita mencoba mengakses let i dari luar perulangan?
for(let i=1; i<6; i++){
console.log(i)
}
console.log(i)
Ketika dijalankan, console akan menampilkan pesan error berupa 'i is not defined' yang berarti variabel i belum pernah kita buat.
Lalu bagaimana jika kita pakai var?
for(var i=1; i<6; i++){
console.log(i)
}
console.log(i)
Ketika kita jalankan code di atas, maka variabel i yang kita panggil di luar perulangan akan menghasilkan nilai 6! Ternyata nilai dari VAR bisa kita akses dari luar block perulangan. Sekarang, kita coba memanggil variabel dengan VAR di luar function.
function greet(){
var say = 'Hello'
return say
}
console.log(say)
Baru ketika kita jalankan code di atas, console akan menampilkan pesan error 'say is not defined'.
Kenapa ini bisa terjadi? Karena VAR menganut sistem functional scope, dimana VAR tidak bisa diakses jika kita mencoba mengaksesnya dari luar function, tetapi masih bisa diakses dari luar block lain seperti perulangan atau percabangan (if-else). Sementara LET dan CONST tidak bisa diakses baik di luar function, percabangan, maupun perulangan.
Ketetapan Data
Sekarang kita bahas ketiganya dari sisi ketetapan data. Apakah ketiganya dapat diubah-ubah data/nilainya, atau tidak dapat diubah. Mari kita uji LET terlebih dahulu.
let bulan = 'mei'
bulan = 'juni'
console.log(bulan)
Code di atas akan menghasilkan output 'juni'. Hal ini menandakan bahwa data pada LET bisa diubah.
Bagaimana dengan VAR?
var bulan = 'mei'
bulan = 'juni'
console.log(bulan)
Code di atas kembali menghasilkan output 'juni'.
Bagaimana dengan CONST?
const bulan = 'mei'
bulan = 'juni'
console.log(bulan)
Berbeda dengan dua code sebelumnya, code di atas akan menghasilkan pesan error 'Assignment to constant variable', hal ini berarti data pada CONST tidak bisa diubah-ubah. Begitupun jika kita memakai CONST dalam perulangan, maka tidak akan bisa. Kesimpulannya, data pada LET dan VAR bisa diubah-ubah, sementara data pada CONST tidak bisa diubah.
Kesimpulan
Let dan Const menganut sistem block scope, yang mana cakupan variabelnya hanya bisa diakses di dalam blocknya saja.
Var menganut sistem functional scope, yang mana variabelnya dapat diakses dari dalam maupun dari luar block kecuali di luar function.
Data pada Let dan Var bisa diubah.
Data pada Const tidak bisa diubah.
Selalu gunakan let atau const jika tidak ingin terjadi kerancuan data/nilai ketika kita mengakses variabel yang ternyata sudah ada di dalam block lain.
Gunakan const ketika datanya cenderung tetap.
Oke sob, saya rasa cukup sampai di sini pembahasan mengenai VAR, LET, CONST. Jika sobat punya pengertian atau perbedaan lain mengenai VAR, LET, CONST ini boleh komentar di bawah ya agar kita bisa diskusi bareng-bareng. Sampai jumpa di blog selanjutnya, salam Programmer!
Komentar
Posting Komentar