Suna bambanta ta hanyoyi uku: scope, halin inyatacciyar da sake sanya.
js
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
Suna bambanta ta hanyoyi uku: scope, halin inyatacciyar da sake sanya.
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
var shine function-scoped, hoisted kuma aka initialize zuwa undefined, kuma ana iya sake bayyana shi. Wannan yana haifar da abin mamaki - gba shi.let shine block-scoped ({ }), kuma ana iya sake bayyana shi, kuma yana zaune a cikin temporal dead zone har zuwa layin sake bayyanarsa (idan ka bugi shi da wuri, jiya aka sanya errar).const shine block-scoped kuma ba za a iya sake bayyana shi ba — amma lura cewa binding yana daidai, *ba kuma ba kimar:const user = { name: "Ann" };
user.name = "Bob"; // ✅ allowed — mutating the object, not reassigning
user = {}; // ❌ TypeError — can't rebind `user`
Fara da const; juyawa zuwa let kawai lokacin da ka bugi sake sanya; kada ka yi amfani da var a cikin sabon code. Wannan yana bayyana intention ("wannan ba zai canja ba") kuma yana guje jujjuyin scope da abubuwan hanci hoisting da var ke kawo da su.