سوال: تفاوت بین const، var و let تو جاوااسکریپت چیه؟
آقا این سوال همیشه میاد، همیشه!
خیلی آسونه ولی چرا همیشه میپرسن؟؟
چون نحوهی جواب دادنتون به این سوال نشون میده که واقعا سطحتون چیه!
جواب درست چیه؟ var:
قدیمی و پراستفاده تو کدهای قدیمی. میتونی دوباره تعریفش کنی، مقدارش رو عوض کنی و تو scope تابع یا global کار میکنه. ولی یه مشکل بزرگ داره: Hoisting! یعنی قبل از تعریف، میتونی ازش استفاده کنی و این گاهی باگهای عجیب درست میکنه.
let
اومد که مشکلات var رو حل کنه. Block Scope داره (فقط تو همون بلاک {} کار میکنه) و دیگه خبری از hoisting عجیب نیست. میتونی مقدارش رو عوض کنی ولی نمیتونی دوباره تعریفش کنی.
const:
مثل let تو block scope کار میکنه، ولی یه فرق بزرگ داره: نمیتونی مقدارش رو عوض کنی. فقط مراقب باش! اگه const یه شیء یا آرایه باشه، میتونی محتویاتش رو تغییر بدی، ولی نمیتونی خود متغیر رو به یه چیز دیگه assign کنی.
چرا این سوال مهمه؟
این سوال ساده، عمق فهمتون از Scope، Hoisting و Reassignment رو لو میده.
نه این که فقط بگیم خب let همون var هستش تغییر میکنه const نمیکنه 😅
var x = 10; // Global یا Function Scope
let y = 20; // Block Scope
const z = 30; // Block Scope، غیرقابل تغییر
if (true) {
var x = 100; // همون x قبلی رو تغییر میده!
let y = 200; // یه y جدید تو این بلاک
const z = 300; // یه z جدید تو این بلاک
}
console.log(x); // 100 😱
console.log(y); // 20 😎
console.log(z); // 30 🛡️
حالا تو نظرت چیه؟ اگه بخوای تو مصاحبه این سوال رو جواب بدی، چی میگی؟
یا اگه بخوام یه نکته دیگه به این پست اضافه کنم، دوست داری چی باشه؟؟🔥
#جاوااسکریپت #برنامه_نویسی #مصاحبه_استخدامی
@developersubtitle
🌐devsub.ir