07
مهدونستن اینکه جاوااسکریپت اساساً چیه، یه پایه محکم برات میسازه برای هر چیزی، از دستکاری DOM گرفته تا برنامهنویسی ناهمگام یا فریمورکهایی مثل React یا Vue. این معمولاً یکی از اولین سؤالها تو مصاحبههای فرانتانده.
جواب:
جاوااسکریپت یه زبان برنامهنویسی سطح بالا، تفسیرشده و پویاست که عمدتاً برای ساخت محتوای تعاملی و پویا تو وبسایتها استفاده میشه. تو مرورگر (سمت کاربر) اجرا میشه، ولی با محیطهایی مثل Node.js میتونه تو سرور هم اجرا بشه. جاوااسکریپت از پارادایمهای برنامهنویسی شیءگرا، تابعی و رویدادمحور پشتیبانی میکنه و این باعث میشه یه ابزار قدرتمند برای توسعه فرانتاند و بکاند باشه.
انتخاب کلمه کلیدی درست برای تعریف متغیرها جلوی باگهای مربوط به محدوده (scope)، بالاکشیدن (hoisting) و تغییرناپذیری (immutability) رو میگیره. مصاحبهکنندهها اینو میپرسن تا ببینن چقدر با جاوااسکریپت مدرن (ES6 به بعد) آشنایی.
جواب:
دونستن اینکه دادهها تو جاوااسکریپت چطور نمایش داده میشن و رفتار میکنن، کمک میکنه جلوی باگهای مربوط به نوع داده رو بگیری و دیباگ کردنت بهتر بشه.
جواب:
جاوااسکریپت دو دسته اصلی نوع داده داره:
این سؤال درکتو از سیستم تبدیل نوع (type coercion) جاوااسکریپت تست میکنه، که اگه درست نفهمیش، میتونه باعث باگهای ریز بشه.
جواب:
بالاکشیدن یه مفهوم اساسیه که روی دسترسی به متغیرها و توابع تو محدودههای مختلف اثر میذاره. مصاحبهکنندهها اینو میپرسن تا بفهمن چقدر با زمینه اجرا (execution context) آشنا هستی.
جواب:
بالاکشیدن رفتار پیشفرض جاوااسکریپته که تعریف متغیرها و توابع رو قبل از اجرای کد به بالای محدودهشون میبره.
کلوژرها یه مفهوم اصلی تو جاوااسکریپتن و خیلی تو callbackها، currying، حفظ حریم داده و الگوهای برنامهنویسی تابعی استفاده میشن.
جواب:
کلوژر وقتی ساخته میشه که یه تابع متغیرهای محدوده بیرونی خودش رو “به خاطر میسپاره”، حتی بعد از اینکه تابع بیرونی اجرا شده و تموم شده. مثال:
اینجا inner هنوز به counter دسترسی داره، حتی بعد از اینکه outer اجرا شده.
جاوااسکریپت تکریسمانی (single-threaded) است. فهم رفتار ناهمگام برای ساخت اپهای وب با عملکرد بالا خیلی مهمه.
جواب:
توابع فلشدار مختصرن و رفتار متفاوتی از نظر this دارن. برای برنامهنویسی به سبک تابعی عالیان.
جواب:
توابع فلشدار یه سینتکس کوتاه (() => {}) دارن و this، arguments، super یا new.target خودشون رو bind نمیکنن. این باعث میشه برای توابع کوتاه و callbackها مناسب باشن، ولی بهعنوان متد یا سازنده (constructor) مناسب نیستن.
۹. 🗂️ محدوده لکسیکال (Lexical Scope) چیه؟ دونستن محدوده لکسیکال بهت کمک میکنه بفهمی متغیرها کجا قابل دسترسیان و کلوژرها چطور کار میکنن.
جواب: محدوده لکسیکال یعنی محدوده یه متغیر با موقعیتش تو کد منبع تعیین میشه. توابع داخلی به متغیرهای تعریفشده تو محدودههای بیرونی دسترسی دارن. این همون دلیلیه که کلوژرها میتونن به متغیرها دسترسی داشته باشن حتی بعد از اینکه تابع والدشون برگشته.
۱۰. 🌀 حلقه رویداد (Event Loop) چیه؟ این قلب رفتار ناهمگام جاوااسکریپته. دونستن این بهت کمک میکنه از شرایط رقابتی (race conditions) جلوگیری کنی و عملکرد رو بهتر کنی.
جواب: حلقه رویداد اجرای چند بخش از برنامهتو تو طول زمان مدیریت میکنه. وظایف رو بین پشته فراخوانی (call stack) و صف callback/وظایف جابهجا میکنه. رفتار غیرمسدودکننده رو تضمین میکنه و وظایف رو وقتی پشته فراخوانی خالیه اجرا میکنه.
در خبرنامه ما مشترک شوید و آخرین اخبار و به روزرسانی های را در صندوق ورودی خود مستقیماً دریافت کنید.
دیدگاه بگذارید