Javascript var, let & const (bahasa indonesia)

 



Kita lebih dahulu mengenal kata kunci var dalam javascript untuk mendeklarasikan sebuah variabel. Namun ES6 (ECMAScript 2015) memperkenalkan 2 buah kata kunci baru untuk mendeklarasikan variabel, yakni let & const.

Ada beberapa perbedaan antara var, let & const, yang dapat kita golongkan menjadi beberapa jenis, yakni terkait scope, hoisting, kemampuan variabel tersebut untuk di-reassign & di-redeclare. Di bawah ini saya akan coba menjelaskannya satu persatu.


Scope

Scope adalah konteks kode saat ini, yang menentukan aksesibilitas variabel ke JavaScript. Singkatnya, saya sering menyebut scope sebagai tempat hidup variabel, dimana variabel tersebut dapat dipanggil/diakses.

Kata kunci var memiliki scope yang sifatnya functional scope, yakni hanya mengenal block fungsi (selain global scope) sebagai scope-nya, sedangkan let & const memiliki scope yang sifatnya block scope, yakni setiap block yang ditandai dengan tanda kurung kurawal { … } juga dianggap sebagai sebuah konteks scope.


Hoisting

Hoisting adalah sebuah proses di mana javascript tampak seolah memindahkan deklarasi fungsi, variabel, atau class ke atas/awal scope, sebelum eksekusi kode. Jadi kita dapat memanggil mereka lebih dulu pada kode, bahkan sebelum mereka dideklarasikan tanpa menimbulkan error.

Hal itu berlaku pada variabel yang dideklarasi dengan var, namun tidak pada let & const.

Perhatikan kode di atas. y & z akan menimbulkan error ketika dipanggil terlebih dahulu. Sedangkan x tidak error, namun menghasilkan print out undefined pada console. Mengapa demikian? Hal ini karena hoisting hanya terjadi pada deklarasi variabel x, namun proses assignment nya tetap terjadi di bawah, sehingga menghasilkan undefined (namun tidak error) saat x dipanggil pada metode console.log, atau kurang lebih dapat digambarkan seperti berikut.


Reassign & Redeclare

Variabel yang dideklarasikan menggunakan kata kunci var & let dapat di-reassign atau diganti nilainya, sedangkan const tidak. Karena sesuai namanya, const diperuntukkan untuk variabel yang sifatnya sebagai konstanta atau sebuah bilangan yang nilainya tetap/tidak berubah.

Sedangkan untuk let & const sama-sama tidak bisa di-redeclare. Hal ini sengaja dilakukan untuk menghindari kesalahan yang sering terjadi pada penggunaan var yakni penggunaan nama yang sama untuk variabel baru, sehingga menyebabkan variabel tersebut secara tidak sengaja di-redeclare


Comments

Popular posts from this blog

Javascript var, let & const