Perbedaan deklarasi variable menggunakan let dan var di javascript
Scope (Jangkauan)
- var: Memiliki function scope. Ini berarti variabel yang dideklarasikan dengan
vardapat diakses di seluruh fungsi tempat mereka dideklarasikan. Jika dideklarasikan di luar fungsi, maka variabel tersebut akan menjadi variabel global. - let: Memiliki block scope. Variabel
lethanya dapat diakses dalam blok kode tempat mereka dideklarasikan (misalnya, dalam sebuahifstatement,forloop, 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 akanundefinedsebelum penugasan nilai. - let: Tidak mengalami hoisting. Anda harus mendeklarasikan
letsebelum digunakan. Jika mencoba mengakses variabelletsebelum dideklarasikan, akan terjadi errorReferenceError.
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
letuntuk sebagian besar kasus, terutama dalam JavaScript modern.letmemberikan 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.
varlebih cocok untuk kode lama atau dalam situasi tertentu di manalettidak 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
letdanvar, ada jugaconstyang 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, kondisiif, 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.