Mereka berbeza dalam tiga cara: scope, hoisting behavior, dan reassignment.
js
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
Mereka berbeza dalam tiga cara: scope, hoisting behavior, dan reassignment.
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
var adalah function-scoped, hoisted dan diinisialisasi ke undefined, dan dapat dideklarasikan semula. Ini menyebabkan kebocoran yang mengejutkan — hindari.let adalah block-scoped ({ }), dapat diassign kembali, dan berada di temporal dead zone hingga baris deklarasinya (mengakses lebih awal membuang kesalahan).const adalah block-scoped dan tidak dapat diassign kembali — tetapi perhatikan bahwa binding adalah konstan, bukan nilainya:const user = { name: "Ann" };
user.name = "Bob"; // ✅ allowed — mutating the object, not reassigning
user = {}; // ❌ TypeError — can't rebind `user`
Secara default gunakan const; beralih ke let hanya ketika Anda harus menetapkan kembali; jangan pernah gunakan var dalam kode baru. Ini membuat maksud jelas ("ini tidak akan berubah") dan menghindari kebocoran scope dan kebingungan hoisting yang dibawa var.