Üç açıdan farklıdırlar: scope, hoisting behavior ve reassignment.
js
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
Üç açıdan farklıdırlar: scope, hoisting behavior ve reassignment.
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
var function-scoped'dur, hoisted'dır ve undefined'e initialize edilir ve yeniden declare edilebilir. Bu şaşırtıcı sızıntılar (leak) nedeniyle kullanılmamalıdır.let block-scoped'dur ({ }), reassign edilebilir ve declaration satırına kadar temporal dead zone'da bulunur (bundan önce erişmek hata fırlatır).const block-scoped'dur ve reassign edilemez — ancak binding'in constant olduğunu, değerin değil dikkat edin:const user = { name: "Ann" };
user.name = "Bob"; // ✅ allowed — mutating the object, not reassigning
user = {}; // ❌ TypeError — can't rebind `user`
Varsayılan olarak const kullanın; yalnızca reassign etmeniz gerektiğinde let'e geçin; yeni kodda hiçbir zaman var kullanmayın. Bu, niyeti açık hale getirir ("bu değişmeyecek") ve var'ın getirdiği scope sızıntıları ve hoisting karmaşasından kaçınır.
Junior'dan Senior'a detaylı cevaplarla bir BT mülakat soruları kütüphanesi.
Bağış Yap