Memahami Penggunaan var, let, const dalam javascript

Aditya Putra Pratama
2 min readAug 3, 2022

--

terkadang bingung kapan harus menggunakan var, let dan const

Photo by Gabriel Heinzer on Unsplash

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.

var function scope

mengapa bisa error, karena meskipun global scope, ketika var di deklarasikan dalam sebuah function maka scope nya akan menjadi function scope

checking var 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

redeklarasi var
update var

Hoisting

hoisting itu dimana deklarasi variable akan di angkat ke atas sebelum kode di eksekusi

hoisting var

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

if with redeclaration var

ada solusi untuk permasalahan di atas dengan cara membuat function scope

if with function redeclaration var

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 {}.

const scope

Tada, masalah deklarasi var terpecahkan

Redeklarasi dan update

const merupakan deklarasi variabel yang konstan, variabel ini tidak dapat di redeklarisasi

redeklarasi const

deklarasi variabel const juga tidak dapat di update

update const

tetapi kita masih bisa mengupdate jika tipe data nya berupa object

update const 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

let scope

Redeklarasi dan update

berbeda dengan const let dapat diupdate sama seperi var

let update

tetapi let tidak dapat di redeklarisasi

let redeclare

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.

--

--

Aditya Putra Pratama
Aditya Putra Pratama

Written by Aditya Putra Pratama

Exploring the intersections of technology and humanity. Seeking insights and sharing discoveries.

No responses yet