Perbedaan deklarasi var dan let

Kak untuk perbedaan deklarasi dgn menggunakan var atau let apa yaa? Kayanya let lebih sering digunakan ya kaa?

var sudah hampir tidak digunakan dalam JavaScript sejak ES6. Satu-satunya alasan var belum dihilangkan adalah beberapa browser seperti Internet Explorer dan Opera Mini belum mendukung secara penuh syntax ES6.

Tapi kakak sebaiknya pakai const dan let saja. Jangan gunakan var karena dua alasan:

  • scope/lingkup variabel
  • konflik penamaan variabel

Kalau kakak pakai var dan secara tidak sengaja mendeklarasikan variabel dengan nama yang sama dua kali, tidak ada error yang muncul. Kalau tidak disadari, ini akan menjadi sumber error yang besar karena nantinya akan sulit melakukan proses debugging.

var nama = "adi"
...
...
...
var nama = "budi" //valid. Tidak ada error yang muncul

Sedangkan kalau kakak pakai let atau const dan tidak sengaja membuat variabel dengan nama yang sama, akan muncul error; jadi kecil kemungkinan terjadinya kesalahan karena penamaan.

let name = "farhan"
...
..
..
let name = "eugene"  // SyntaxError (identifier has already been declared)


Contoh lain. Misal ada variabel bernama number. Lalu kakak membuat sebuah if-else statement yang di dalamnya ada variabel lain bernama number juga. Kalau kakak tidak sadar, nilai variabel yang pertama bisa tertimpa dan programnya tidak akan berjalan dengan benar.

var number = 301;
...
...

if ( .... ) {
  var number = 1 // variabel number yang tadi akan tertimpa nilainya.
  ...
  ...
} 

Untuk menghindari kesalahan-kesalahan seperti itu

  • gunakan let dan const karena scope/lingkup mereka itu di dalam block { … },
  • gunakan nama variabel yang jelas. Ngga perlu panjang2, tapi kalau ternyata harus panjang untuk membedakan satu dengan yang lain ya gapapa.

Jadi jangan cuma name atau number. Karena programmer lain pasti bingung, ini nama siapa? ini bilangan apa?
Bisa diganti sesuai konteksnya, misal studentName atau numberOfIterations.

3 Likes