Perbedaan deklarasi variable menggunakan let dan var di javascript

Perbedaan deklarasi variable menggunakan let dan var di javascript

Scope (Jangkauan)

  • var: Memiliki function scope. Ini berarti variabel yang dideklarasikan dengan var dapat diakses di seluruh fungsi tempat mereka dideklarasikan. Jika dideklarasikan di luar fungsi, maka variabel tersebut akan menjadi variabel global.
  • let: Memiliki block scope. Variabel let hanya dapat diakses dalam blok kode tempat mereka dideklarasikan (misalnya, dalam sebuah if statement, for loop, atau blok kode yang diapit oleh kurung kurawal).

Hoisting

  • var: Mengalami hoisting. Ini artinya deklarasi var "diangkat" ke atas fungsi, sehingga Anda bisa menggunakan variabel sebelum dideklarasikan. Namun, nilainya akan undefined sebelum penugasan nilai.
  • let: Tidak mengalami hoisting. Anda harus mendeklarasikan let sebelum digunakan. Jika mencoba mengakses variabel let sebelum dideklarasikan, akan terjadi error ReferenceError.

Redeklarasi

  • var: Dapat dideklarasikan ulang dalam satu scope yang sama.
  • let: Tidak dapat dideklarasikan ulang dalam satu scope yang sama. Ini akan menyebabkan error SyntaxError.

Contoh 

// var
var x = 10;
if (true) {
var x = 20; // x akan menjadi 20 di seluruh fungsi
console.log(x); // Output: 20
}
console.log(x); // Output: 20

// let
let y = 10;
if (true) {
let y = 20; // y hanya berlaku dalam blok if
console.log(y); // Output: 20
}
console.log(y); // Output: 10

 

Kapan Menggunakan let dan var?

  • let: Sebaiknya gunakan let untuk sebagian besar kasus, terutama dalam JavaScript modern. let memberikan kontrol yang lebih baik atas scope variabel, mengurangi kemungkinan konflik nama variabel, dan membuat kode lebih mudah dibaca dan dipelihara.
  • var: Masih bisa digunakan, tetapi sebaiknya hindari untuk deklarasi variabel baru. var lebih cocok untuk kode lama atau dalam situasi tertentu di mana let tidak dapat digunakan.

Kesimpulan

let adalah pilihan yang lebih baik daripada var dalam kebanyakan kasus karena memberikan kontrol yang lebih baik atas scope variabel dan menghindari beberapa masalah yang terkait dengan var. Memahami perbedaan antara keduanya sangat penting untuk menulis kode JavaScript yang bersih, efisien, dan mudah dipelihara.

Tips Tambahan:

  • const: Selain let dan var, ada juga const yang digunakan untuk mendeklarasikan variabel yang nilainya tidak akan berubah setelah diinisialisasi.
  • Block Scope: Blok kode adalah bagian dari kode yang diapit oleh kurung kurawal {}. Contoh blok kode adalah tubuh fungsi, kondisi if, loop, dan lainnya.

Pilihan Anda:

Jika Anda baru belajar JavaScript, sebaiknya langsung biasakan diri dengan let dan const. Keduanya memberikan fitur yang lebih modern dan membantu Anda menulis kode yang lebih baik.