Memahami Penggunaan var, let, const dalam javascript
terkadang bingung kapan harus menggunakan var, let dan const
sebelum memahami lebih dalam terhadap variabel ini, saya memiliki stereotipe kalau perbedaan antara ketiga variable ini hanyalah global scope dan block scope, namun dalam penggunaannya ada hal lain yang membedakan antar variabel
var
var merupakan deklarasi variable dalam javascript, sebelum adanya ES6 var merupakan deklarasi umum yang sering digunakan
kapan harus menggunakan var?
untuk saat ini sebaiknya tidak menggunakan var dalam pengembangan perangkat lunak
Scope
scope(cakupan) dari var adalah global scope atau function scope, jadi ketika mendeklarasikan variabel dengan mengunakan var, variabel ini dapat di akses dimanapun.
mengapa bisa error, karena meskipun global scope, ketika var di deklarasikan dalam sebuah function maka scope nya akan menjadi function scope
terlihat bahwa deklarasi sebelumnya tidak akan menimpa deklarasi yang ada dalam function scope
Redeklarasi dan update
var dapat di redeklarasi dan di update sesuka hati, var bisa menimpa value dari variable dengan nama yang sama
Hoisting
hoisting itu dimana deklarasi variable akan di angkat ke atas sebelum kode di eksekusi
Kenapa sebaiknya menghindari var?
karena scope var adalah global scope atau function scope maka ketika menggunakan if dan membuat redeklarasi variabel akan tetap menimpa variabel tersebut
ada solusi untuk permasalahan di atas dengan cara membuat function scope
tetapi tetap saja hal ini menakutkan. itulah kenapa sebaiknya meggunakan const atau let sebagai deklarasi variabel javascript
const
merupakan deklarasi variabel yang konstan, maksudnya di sini variabel ini tidak dapat di redeklarisasi
Scope
berbeda dengan var yang merupakan global atau function scope, const merupakan block scope, blok adalah potongan kode yang dibatasi oleh {}.
Tada, masalah deklarasi var terpecahkan
Redeklarasi dan update
const merupakan deklarasi variabel yang konstan, variabel ini tidak dapat di redeklarisasi
deklarasi variabel const juga tidak dapat di update
tetapi kita masih bisa mengupdate jika tipe data nya berupa object
Hoisting
seperti var, const juga mendukung hoisting tetapi perbedaannya inisialisasi var adalah undefined sedangkan const belum ada inisialisasi jadi akan menyebabkan error
let
let merupakan deklarasi variabel yang dapat digunakan untuk alternativ var, di banding dengan const, let dapat mengupdate variable nya
Scope
let merupakan block scope sama seperti const
Redeklarasi dan update
berbeda dengan const let dapat diupdate sama seperi var
tetapi let tidak dapat di redeklarisasi
Hoisting
seperti var dan const, let juga mendukung hoisting tetapi perbedaannya inisialisasi var adalah undefined sedangkan let belum ada inisialisasi jadi akan menyebabkan error
Kesimpulan
dari penjelasan di atas dapat di simpulkan lebih baik menggunakan deklarasi variabel let atau const di banding var, saya pribadi lebih menyukai menggunakan variabel const karena ketika membuat sebuah variabel belum tentu variabel tersebut akan di rubah, juga lebih aman dalam menggunakannya karena tidak dapat di redeklarisasi
Semoga Bermanfaat !!
Referensi
https://www.freecodecamp.org/news/var-let-and-const-whats-the-difference/
https://www.geeksforgeeks.org/difference-between-var-let-and-const-keywords-in-javascript/
https://www.freecodecamp.org/news/var-let-and-const-whats-the-difference/
https://www.developer.com/languages/javascript/javascript-var-let-const-variable-declaration/#:~:text=var%2C%20let%2C%20and%20const%20Variable%20Declaration%20in%20JavaScript&text=Hoisting%20means%20that%20the%20variable,to%20the%20immediate%20enclosing%20block.