دوستان کسی هست AI کار کرده باشه؟
سوال دارم.
آیا توسعه اپ هوش مصنوعی (چه وب ، چه موبایل ، چه دسکتاپ و ...) چیزی به جز اینه که یکسری apiها از سمت سرورهای چت جی پی تی یا مشابهش فراخوانی میشه؟ (مثل همون کاری با بک اند عادی میکنیم)
یا چیز دیگهایه؟
(حالا به جز اون انگشت شمار مواردی که واقعا دارن مدلها رو ترین میکنن یا ابزار جدید میسازن)
واقعا سوالم هستش. احساس میکنم من بد متوجه شدم.
سوال دارم.
آیا توسعه اپ هوش مصنوعی (چه وب ، چه موبایل ، چه دسکتاپ و ...) چیزی به جز اینه که یکسری apiها از سمت سرورهای چت جی پی تی یا مشابهش فراخوانی میشه؟ (مثل همون کاری با بک اند عادی میکنیم)
یا چیز دیگهایه؟
(حالا به جز اون انگشت شمار مواردی که واقعا دارن مدلها رو ترین میکنن یا ابزار جدید میسازن)
واقعا سوالم هستش. احساس میکنم من بد متوجه شدم.
در کنار برنامه نویسی ، کم کم شروع کنید یک کار فنی یاد بگیرید.
لوله کشی ، نونوایی ، برقکاری و ...
لوله کشی ، نونوایی ، برقکاری و ...
بله. بازار کار همین قدر بیرحمه
منی که توی کانادام ، کار جنرال هم نمیتونم پیدا کنم ، این بنده خدا رو با این حجم از گولاخیت ، بعد ۲۵ سال شوت کردن 🙄
منظور این نیست که ناامید بشید. منظور اینه که همیشه خودتون و خانوادتون توی اولویت هستید و خودتون رو فدای کار نکنید.
شرکتها یادشون میره شما تعطیلات نرفتید و موندید کار کردید ، ولی خانوادتون یادش نمیره.
پاورقی : تخصص جانبی یاد بگیرید. چیزی که مرتبط با تجهیزات الکترونیکی نباشه. و همیشه از همه مرخصیها و تعطیلاتتون استفاده کنید.
منی که توی کانادام ، کار جنرال هم نمیتونم پیدا کنم ، این بنده خدا رو با این حجم از گولاخیت ، بعد ۲۵ سال شوت کردن 🙄
منظور این نیست که ناامید بشید. منظور اینه که همیشه خودتون و خانوادتون توی اولویت هستید و خودتون رو فدای کار نکنید.
شرکتها یادشون میره شما تعطیلات نرفتید و موندید کار کردید ، ولی خانوادتون یادش نمیره.
پاورقی : تخصص جانبی یاد بگیرید. چیزی که مرتبط با تجهیزات الکترونیکی نباشه. و همیشه از همه مرخصیها و تعطیلاتتون استفاده کنید.
خلاصه وضعیت:
برای سومین بار توی عمرمه که ساحل امنمو ترک کردم . این سری واقعا از ساحل دور شدم ، دو سه ماه اول گل و بلبل بود ولی ۶ ماهه دارم شنا میکنم و تا کیلومترها هیچ خشکیای نیست.
به شدت ترسناک و به شدت سخته. غریب و بیآشنا توی جایی که حتی به زبان تو هم صحبت نمیکنن و باید با تعدیل شدههای گوگل و ماکروسافت و اپل رقابت کنی. اونم توی شرایطی که همه ، کشور تو رو تروریستی میدونن و نمیتونن بهت اعتماد کنن.
و البته ایرانیهایی که تا میفهمن ایرانی هستی ، نه تنها کمکت نمیکنن ، بلکه مانع حضورت هم میخوان بشن. (البته همه اینجوری نیستن)
امیدواری خوبه ولی همیشه باید پلن B برای باخت هم داشته باشید. بلاخره اینا دو روی یک سکه هستن.
اگر نشه هم به خودم افتخار میکنم که جرات انجام همچین کاری رو داشتم.
همون داستان چتر و پرواز و این صحبتا.
به زودی این سکه ما هم چرخشش تموم میشه و معلوم میشه به کدوم رو افتاده.
برای سومین بار توی عمرمه که ساحل امنمو ترک کردم . این سری واقعا از ساحل دور شدم ، دو سه ماه اول گل و بلبل بود ولی ۶ ماهه دارم شنا میکنم و تا کیلومترها هیچ خشکیای نیست.
به شدت ترسناک و به شدت سخته. غریب و بیآشنا توی جایی که حتی به زبان تو هم صحبت نمیکنن و باید با تعدیل شدههای گوگل و ماکروسافت و اپل رقابت کنی. اونم توی شرایطی که همه ، کشور تو رو تروریستی میدونن و نمیتونن بهت اعتماد کنن.
و البته ایرانیهایی که تا میفهمن ایرانی هستی ، نه تنها کمکت نمیکنن ، بلکه مانع حضورت هم میخوان بشن. (البته همه اینجوری نیستن)
امیدواری خوبه ولی همیشه باید پلن B برای باخت هم داشته باشید. بلاخره اینا دو روی یک سکه هستن.
اگر نشه هم به خودم افتخار میکنم که جرات انجام همچین کاری رو داشتم.
همون داستان چتر و پرواز و این صحبتا.
به زودی این سکه ما هم چرخشش تموم میشه و معلوم میشه به کدوم رو افتاده.
ویدیوهای ۳۶۰ کانادا
میتونید انگشت یا ماوس بکشید روی صفحه زاویه دوربین رو عوض کنید.
پیشنهاد میکنم با کیفیت 4k ببینید
https://www.youtube.com/playlist?list=PLkWiyaZVy9w42RP5296F_ifBJz61MuVfI
میتونید انگشت یا ماوس بکشید روی صفحه زاویه دوربین رو عوض کنید.
پیشنهاد میکنم با کیفیت 4k ببینید
https://www.youtube.com/playlist?list=PLkWiyaZVy9w42RP5296F_ifBJz61MuVfI
یه چیزی که اخیرا خیلی دیگه زیاد شده ، یه عده حریصانه طرفدار Zustand هستن. بپرسی هم میگن چون ریداکس خیلی پیچیدگی میاره.
تصویر رو از سایت خود Zustand برداشتم. در مورد این چی میگید؟
حرفم اینه هر کدوم از این ابزارها ، توی جای خودشون با توجه به نوع پروژه کاربرد دارن و هیچ کدومشون به صورت قطعی از اون یکی بالاتر نیست (هر چند که در اکثر مواقع انتخاب خودم برای پروژههای بزرگ ریداکسه و برای پروژههای کوچک jotai)
خیلی تعصب نداشته باشید روی یک ابزار. ببینید نیاز پروژتون رو برطرف میکنه یا نه (به صورت صحیح) و ازش استفاده کنید تموم شه بره.
تصویر رو از سایت خود Zustand برداشتم. در مورد این چی میگید؟
حرفم اینه هر کدوم از این ابزارها ، توی جای خودشون با توجه به نوع پروژه کاربرد دارن و هیچ کدومشون به صورت قطعی از اون یکی بالاتر نیست (هر چند که در اکثر مواقع انتخاب خودم برای پروژههای بزرگ ریداکسه و برای پروژههای کوچک jotai)
خیلی تعصب نداشته باشید روی یک ابزار. ببینید نیاز پروژتون رو برطرف میکنه یا نه (به صورت صحیح) و ازش استفاده کنید تموم شه بره.
با اینکه که خودم خیلی با Zustand حال نمیکنم 😁 ولی اگر میخواید یاد بگیرید این ویدیو ۳۶ دقیقهای رو ببینید. خوب توضیح میده :
https://www.youtube.com/watch?v=co3ZJ0ktI7c
https://www.youtube.com/watch?v=co3ZJ0ktI7c
یک سوال الگوریتمی که توی مصاحبه پرسیدن: (فارسی سازی شده)
صورت مسئله به زبان ساده:
• یه سری کارت داریم که از چپ به راست چیده شدن، مثل:
[-2, 4, -3, 5, -1, 2]
• روی هر کارت یه عدد نوشته شده. میتونه منفی یا مثبت باشه.
• ما از چپ به راست باید کارتها رو انتخاب کنیم.
• با برداشتن هر کارت، عدد اون به “قدرت فعلی” ما اضافه میشه.
• قدرت اولیه ما: 0
• ولی یه قانون مهم داریم:
قدرت ما در هیچ لحظهای نباید صفر یا منفی بشه. اگر بشه، بازی تمومه.
🎯 هدف:
ما باید بیشترین تعداد کارت رو انتخاب کنیم، طوری که قدرتمون همیشه بیشتر از صفر باقی بمونه.
🔍 مثال:
فرض کن کارتها این باشن
کارتها: [3, -2, 4, -5, 2, -1]
قدرت اولیه: 0
قدمبهقدم بریم جلو:
1. کارت 3 → قدرت 0+3 = 3 → خوبه ✅
2. کارت -2 → قدرت 3-2 = 1 → هنوز مثبت ✅
3. کارت 4 → قدرت 1+4 = 5 ✅
4. کارت -5 → قدرت 5-5 = 0 ❌ مجاز نیست → نمیتونیم برداریم
5. کارت 2 → قدرت 5+2 = 7 ✅
6. کارت -1 → قدرت 7-1 = 6 ✅
پس مجموعاً 5 تا کارت برداشتیم و زنده موندیم. 🎉
برای اینکه بتونیم همیشه قدرتمون رو حفظ کنیم، یه روش هوشمند داریم:
1. از چپ به راست حرکت میکنیم.
2. هر کارتی که باعث نشه قدرت صفر یا منفی بشه → برمیداریم.
3. اگه کارت منفی بود، توی یه لیست ذخیره میکنیم.
4. اگه در آینده قراره قدرتمون منفی بشه:
• چک میکنیم بین کارتهای منفی که قبلاً برداشتیم، آیا یکی هست که از کارت فعلی بدتر (منفیتر) باشه؟
• اگه بله → اون کارت بدتر رو حذف میکنیم، کارت فعلی رو میگیریم.
توجه : این روش minHeap واقعی نیست
#interview #algorithm
صورت مسئله به زبان ساده:
• یه سری کارت داریم که از چپ به راست چیده شدن، مثل:
[-2, 4, -3, 5, -1, 2]
• روی هر کارت یه عدد نوشته شده. میتونه منفی یا مثبت باشه.
• ما از چپ به راست باید کارتها رو انتخاب کنیم.
• با برداشتن هر کارت، عدد اون به “قدرت فعلی” ما اضافه میشه.
• قدرت اولیه ما: 0
• ولی یه قانون مهم داریم:
قدرت ما در هیچ لحظهای نباید صفر یا منفی بشه. اگر بشه، بازی تمومه.
🎯 هدف:
ما باید بیشترین تعداد کارت رو انتخاب کنیم، طوری که قدرتمون همیشه بیشتر از صفر باقی بمونه.
🔍 مثال:
فرض کن کارتها این باشن
کارتها: [3, -2, 4, -5, 2, -1]
قدرت اولیه: 0
قدمبهقدم بریم جلو:
1. کارت 3 → قدرت 0+3 = 3 → خوبه ✅
2. کارت -2 → قدرت 3-2 = 1 → هنوز مثبت ✅
3. کارت 4 → قدرت 1+4 = 5 ✅
4. کارت -5 → قدرت 5-5 = 0 ❌ مجاز نیست → نمیتونیم برداریم
5. کارت 2 → قدرت 5+2 = 7 ✅
6. کارت -1 → قدرت 7-1 = 6 ✅
پس مجموعاً 5 تا کارت برداشتیم و زنده موندیم. 🎉
برای اینکه بتونیم همیشه قدرتمون رو حفظ کنیم، یه روش هوشمند داریم:
1. از چپ به راست حرکت میکنیم.
2. هر کارتی که باعث نشه قدرت صفر یا منفی بشه → برمیداریم.
3. اگه کارت منفی بود، توی یه لیست ذخیره میکنیم.
4. اگه در آینده قراره قدرتمون منفی بشه:
• چک میکنیم بین کارتهای منفی که قبلاً برداشتیم، آیا یکی هست که از کارت فعلی بدتر (منفیتر) باشه؟
• اگه بله → اون کارت بدتر رو حذف میکنیم، کارت فعلی رو میگیریم.
توجه : این روش minHeap واقعی نیست
function maxCardCount(cards) {
let power = 0;
let count = 0;
const minHeap = [];
for (let card of cards) {
if (power + card <= 0) {
// Can't pick this card directly — check if we can replace a more negative one
if (card < 0 && minHeap.length > 0 && minHeap[minHeap.length - 1] < card) {
// Replace the most negative card
const removed = minHeap.pop();
power -= removed;
minHeap.push(card);
power += card;
// count stays the same
minHeap.sort((a, b) => a - b); // keep heap sorted
}
continue; // skip if we can’t afford the card
}
// Safe to pick the card
power += card;
count++;
if (card < 0) {
minHeap.push(card);
minHeap.sort((a, b) => a - b);
}
}
return count;
}
#interview #algorithm
یادتونه پارسال یه پستی گذاشتم که اکثر گزافه گویی ها توسط افرادی اتفاق میفته که پروفایلشون نه عکس داره ، نه اسم مشخصی داره؟ در واقع لاتهای مجازی از نوع فیکش. حتی اعتماد به نفس لات مجازی واقعی بودن هم ندارن.
به خاطر همین معمولا به کامنتهای این افراد جواب نمیدم.
الان هم در مورد این دوره تایپ اسکریپت بالا ، یکی اومد پرت و پلایی گفت. از اونجا که حوصله کل کل ندارم بلافاصله بلاک و بن میکنم. سنمون از شاخ به شاخ شدن گذشته ولی سوال خوبی رو میشد از توی حرفاش درآورد.
پرسدی من که ۶ ماهه توی کانادا هستم و نتونستم کار پیدا کنم ، چرا میام چیزهایی یاد میدم که بقیه هم باهاش نتونن کار پیدا کنن؟
دلایل زیادی داره:
۱- علاقه: همه به خاطر کار پیدا کردن ، برنامهنویسی یاد نمیگیرن
۲- تلاش : شاید من تلاشم کم بوده و شاید مسیر رو اشتباه رفتم و این دلیل نمیشه بقیه هم همینطوری عمل کنن.
۳- شانس : خیلی این مورد اهمیت بالایی داره و کاملا غیر قابل اندازه گیریه تاثیرش.
۴- آشنا و رابطه : درسته منی که اینجا هستم ۶ ماهه کار پیدا نکردم ولی نفراتی اینجان که روز اول ورک پرمیتشون رفتن سرکار به خاطر اینکه دایی و خالهشون اینجا صاحب کسب و کار بوده.
۵- و در نهایت علاقه خودم به تدریس که از سال ۹۲ دارم انجام میدم و هر بار که یکی بعد از چند سال میاد میگه خدا خیرت بده چه قدر خوب آموزش دادی ، ۱۰ سال جوونتر میشم.
خلاصه که ببینیند قلبتون کجا میبرتتون. به مهمل بقیه گوش نکنید و اگر کاری رو که عاشقشید انجام بدید ، حتی اگر به مقصد نرسید ، باز از مسیر لذت میبرید ، هر چند که میتونم با قطعیت بگم به مقصد میرسید و موفق میشید.
به خاطر همین معمولا به کامنتهای این افراد جواب نمیدم.
الان هم در مورد این دوره تایپ اسکریپت بالا ، یکی اومد پرت و پلایی گفت. از اونجا که حوصله کل کل ندارم بلافاصله بلاک و بن میکنم. سنمون از شاخ به شاخ شدن گذشته ولی سوال خوبی رو میشد از توی حرفاش درآورد.
پرسدی من که ۶ ماهه توی کانادا هستم و نتونستم کار پیدا کنم ، چرا میام چیزهایی یاد میدم که بقیه هم باهاش نتونن کار پیدا کنن؟
دلایل زیادی داره:
۱- علاقه: همه به خاطر کار پیدا کردن ، برنامهنویسی یاد نمیگیرن
۲- تلاش : شاید من تلاشم کم بوده و شاید مسیر رو اشتباه رفتم و این دلیل نمیشه بقیه هم همینطوری عمل کنن.
۳- شانس : خیلی این مورد اهمیت بالایی داره و کاملا غیر قابل اندازه گیریه تاثیرش.
۴- آشنا و رابطه : درسته منی که اینجا هستم ۶ ماهه کار پیدا نکردم ولی نفراتی اینجان که روز اول ورک پرمیتشون رفتن سرکار به خاطر اینکه دایی و خالهشون اینجا صاحب کسب و کار بوده.
۵- و در نهایت علاقه خودم به تدریس که از سال ۹۲ دارم انجام میدم و هر بار که یکی بعد از چند سال میاد میگه خدا خیرت بده چه قدر خوب آموزش دادی ، ۱۰ سال جوونتر میشم.
خلاصه که ببینیند قلبتون کجا میبرتتون. به مهمل بقیه گوش نکنید و اگر کاری رو که عاشقشید انجام بدید ، حتی اگر به مقصد نرسید ، باز از مسیر لذت میبرید ، هر چند که میتونم با قطعیت بگم به مقصد میرسید و موفق میشید.
دوره فشرده تایپ اسکریپت مقدماتی از پایه (آخرین آپدیت)
سرفصلها : ریپلای شده.
هزینه : ۲.۵ میلیون تومان
زمان : از ۲۵ خرداد الی ۲۹ خرداد ، به مدت ۵ شب ، هر شب از ساعت ۲۰:۳۰ الی ۲۲:۳۰ (به وقت ایران)
مثبت منفی یک جلسه (برای اتفاقات پیشبینی نشده)
مخاطب دوره : هر نفری که شناخت خوبی از جاوااسکریپت داره.
هر چند که توی هر جلسه مثالهای مختلفی از فریمورکها و کتابخانههای متفاوتی داریم ولی رویکرد اصلی دوره pure typenoscript هستش و برای همه میتونه مفید واقع بشه.
جلسات رکورد نمیشه ولی جزوه جلسه به شکل PDF در اختیارتون قرار میگیره.
برای شرکت توی دوره مستقیما به خودم پیام بدید 🙏
@alithecodeguy
آپدیت: دوستان گفتن گویا تایم امتحاناته. زمانش رو تغییر دادم انداختم انتهای خرداد.
سرفصلها : ریپلای شده.
هزینه : ۲.۵ میلیون تومان
زمان : از ۲۵ خرداد الی ۲۹ خرداد ، به مدت ۵ شب ، هر شب از ساعت ۲۰:۳۰ الی ۲۲:۳۰ (به وقت ایران)
مثبت منفی یک جلسه (برای اتفاقات پیشبینی نشده)
مخاطب دوره : هر نفری که شناخت خوبی از جاوااسکریپت داره.
هر چند که توی هر جلسه مثالهای مختلفی از فریمورکها و کتابخانههای متفاوتی داریم ولی رویکرد اصلی دوره pure typenoscript هستش و برای همه میتونه مفید واقع بشه.
جلسات رکورد نمیشه ولی جزوه جلسه به شکل PDF در اختیارتون قرار میگیره.
برای شرکت توی دوره مستقیما به خودم پیام بدید 🙏
@alithecodeguy
آپدیت: دوستان گفتن گویا تایم امتحاناته. زمانش رو تغییر دادم انداختم انتهای خرداد.
نکته لاگین و دیتابیسی :
توی پروژه شخصیم، بعد از پیادهسازی لاگین با Google Sign-In، کاربرها بعد از لاگین به جای رفتن به داشبورد با Access Denied مواجه میشدن.
اول فکر کردم مشکل از Google Client Secret یا تنظیمات OAuth هست. چند بار کل تنظیمات گوگل رو بررسی کردم و تغییر دادم، ولی نتیجهای نداد.
بعد از کلی بررسی متوجه شدم که dbConnect() اصلاً اتصال به MongoDB برقرار نمیکنه، ولی در سکوت کامل بدون هیچ خطایی رد میشه.
و دلیلش؟ رمز عبوری بود که توی URI استفاده کرده بودم.
رمز من شامل کاراکترهای خاص مثل ( و = بود.
توی URI اینجور رمزها باید URL-encode بشن، وگرنه MongoDB نه تنها وصل نمیشه، بلکه هیچ ارور واضحی هم نمیده.
توی پروژه شخصیم، بعد از پیادهسازی لاگین با Google Sign-In، کاربرها بعد از لاگین به جای رفتن به داشبورد با Access Denied مواجه میشدن.
اول فکر کردم مشکل از Google Client Secret یا تنظیمات OAuth هست. چند بار کل تنظیمات گوگل رو بررسی کردم و تغییر دادم، ولی نتیجهای نداد.
بعد از کلی بررسی متوجه شدم که dbConnect() اصلاً اتصال به MongoDB برقرار نمیکنه، ولی در سکوت کامل بدون هیچ خطایی رد میشه.
و دلیلش؟ رمز عبوری بود که توی URI استفاده کرده بودم.
رمز من شامل کاراکترهای خاص مثل ( و = بود.
توی URI اینجور رمزها باید URL-encode بشن، وگرنه MongoDB نه تنها وصل نمیشه، بلکه هیچ ارور واضحی هم نمیده.
امروز برای بار چندم رفتم تک به تک محلههای ونکوور رو گشتم و جدا از اینکه کار نیست ، باید بگم به شدت شهر کثیف و خطرناکیه.
البته نمیخوام تهران رو تطهیر کنم. اون که ته جدوله ولی کلا خیلی از ونکوور برای خودتون بت نسازید.
اگر چندتا جای خوشکلش رو فاکتور بگیرید ، در بهترین حالت میشه با میدون راهن یا ته تهش دیگه با میدون انقلاب مقایسهاش کرد.
تنها در دو صورت برای رسیدن به اینجا به آب و آتیش بزنید :
۱. کار تخصصی تپل گیرتون اومده.
۲. خیلی مشکل جدیای دارید که دیگه نمیتونید ایران بمونید.
هیچ کس از بوی ادرار و گلی که توی سطح شهر میاد ، خیابونای کثیف و پر زبالهاش ، معتادای خطرناکی که داره ، رانندگی بدشون ، تیراندازیهای هر روز و ... صحبت نمیکنه.
ای بر پدر اون کسی که ایران رو به این روز درآورد لعنت ، که دقیقا میدونست داره چیکار میکنه.
البته نمیخوام تهران رو تطهیر کنم. اون که ته جدوله ولی کلا خیلی از ونکوور برای خودتون بت نسازید.
اگر چندتا جای خوشکلش رو فاکتور بگیرید ، در بهترین حالت میشه با میدون راهن یا ته تهش دیگه با میدون انقلاب مقایسهاش کرد.
تنها در دو صورت برای رسیدن به اینجا به آب و آتیش بزنید :
۱. کار تخصصی تپل گیرتون اومده.
۲. خیلی مشکل جدیای دارید که دیگه نمیتونید ایران بمونید.
هیچ کس از بوی ادرار و گلی که توی سطح شهر میاد ، خیابونای کثیف و پر زبالهاش ، معتادای خطرناکی که داره ، رانندگی بدشون ، تیراندازیهای هر روز و ... صحبت نمیکنه.
ای بر پدر اون کسی که ایران رو به این روز درآورد لعنت ، که دقیقا میدونست داره چیکار میکنه.
این عکسها ، آمار کانالهای عشق ابدی و تراورسی مدیا هستش.
دیگه خودتون تا ته قضیه رو ببینید. این که دیگه آقای ایکس و ایگرگ نیست. مقایسه مردم خودمون با مردم دنیاس.
دیگه خودتون تا ته قضیه رو ببینید. این که دیگه آقای ایکس و ایگرگ نیست. مقایسه مردم خودمون با مردم دنیاس.
This media is not supported in your browser
VIEW IN TELEGRAM
عین واقعیت 😂
الان خودم درگیر نونواییم 😅
الان خودم درگیر نونواییم 😅
اجرا نکرده جواب بدید : خروجی چی میشه؟
#interview #js
async function run() {
console.log('1');
await Promise.resolve();
console.log('2');
}
run();
console.log('3');
#interview #js
اجرا نکرده جواب بدید : خروجی چی میشه؟
#interview #js
let a = { x: 1 };
let b = a;
a.x = 2;
a = { x: 3 };
console.log(b.x);
#interview #js
سوالات مصاحبهای پارت ۱
Q1:
3
3
3
Q2:
0
1
2
Q3:
Hi undefined
Q4:
""
[object Object]
[object Object]
NaN
Q5:
1undefined
Q6:
true
Q7:
false
Q8:
0
2
Q9:
true
false
Q10:
456
Q11:
undefined
Q12:
'51'
4
Q13:
2 1
Q14:
'1,2,34,5,6'
Q15:
ReferenceError: Cannot access 'y' before initialization
Q16:
1
5
3
4
2
Q17:
5
Q18:
A
C
B
Q19:
Ali the code guy
Reza the pilot
Q20:
undefinedthe code guy
Reza the pilot
Q21:
Uncaught ReferenceError: Cannot access 'name' before initialization
Q22:
console.log(a); // ✅ prints: a
console.log(b); // ❌ ReferenceError: b is not defined
console.log(c); // ❌ ReferenceError: c is not defined
console.log(d); // ❌ ReferenceError: d is not defined
console.log(e); // ❌ ReferenceError: e is not defined
console.log(f); // ❌ ReferenceError: f is not defined
Q23:
a
TypeError: b is not a function
Q24:
[5, 5, 5, 5, 5]
Q25:
4
5
6
Q26:
undefined
Q27:
End
Microtask - Promise
Macrotask - Timer
پارت ۲ سوالات:
https://news.1rj.ru/str/danceswithcode/4618
@danceswithcode
#interview #js
Q1:
for (var i = 0; i < 3; i++) {
setTimeout(() => console.log(i), 1000);
}
3
3
3
Q2:
for (let i = 0; i < 3; i++) {
setTimeout(() => console.log(i), 1000);
}
0
1
2
Q3:
const obj = {
name: 'Ali',
sayHi: function () {
setTimeout(function () {
console.log(`Hi ${this.name}`);
}, 1000);
}
};
obj.sayHi();
Hi undefined
Q4:
console.log([] + []);
console.log([] + {});
console.log({} + []);
console.log({} + {});
""
[object Object]
[object Object]
NaN
Q5:
let x = 1;
if (function f() {}) {
x += typeof f;
}
console.log(x);
1undefined
Q6:
console.log([] == ![]);
true
Q7:
console.log([] == []);
false
Q8:
let x = 0;
console.log(x++);
console.log(++x);
0
2
Q9:
console.log(1 < 2 < 3);
console.log(3 > 2 > 1);
true
false
Q10:
const a = {};
const b = { key: 'b' };
const c = { key: 'c' };
a[b] = 123;
a[c] = 456;
console.log(a[b]);
456
Q11:
let obj = {
a: 10,
b: () => console.log(this.a)
};
obj.b();
undefined
Q12:
console.log("5" + 1);
console.log("5" - 1);
'51'
4
Q13:
let a = 1;
let b = a++;
console.log(a, b);
2 1
Q14:
console.log([1, 2, 3] + [4, 5, 6]);
'1,2,34,5,6'
Q15:
function test(x = y, y = 2) {
console.log(x, y);
}
test();
ReferenceError: Cannot access 'y' before initialization
Q16:
console.log('1');
setTimeout(() => console.log('2'), 0);
Promise.resolve().then(() => console.log('3')).then(() => console.log('4'));
console.log('5');
1
5
3
4
2
Q17:
async function test() {
return 5;
}
test().then(console.log);
5
Q18:
Promise.resolve()
.then(() => console.log('A'))
.then(() => console.log('B'));
Promise.resolve().then(() => console.log('C'));
A
C
B
Q19:
var name = "Ali";
(function () {
console.log(name + " the code guy");
name = "Reza";
console.log(name + " the pilot");
})();
Ali the code guy
Reza the pilot
Q20:
var name = "Ali";
(function () {
console.log(name + " the code guy");
var name = "Reza";
console.log(name + " the pilot");
})();
undefinedthe code guy
Reza the pilot
Q21:
var name = "Ali";
(function () {
console.log(name + " the code guy");
let name = "Reza";
console.log(name + " the pilot");
})();
Uncaught ReferenceError: Cannot access 'name' before initialization
Q22:
if (2 == '2') {
var a = 'a';
let b = 'b';
const c = 'c';
}
function func() {
var d = 'd';
let e = 'e';
const f = 'f';
}
func();
console.log(a);
console.log(b);
console.log(c);
console.log(d);
console.log(e);
console.log(f);
console.log(a); // ✅ prints: a
console.log(b); // ❌ ReferenceError: b is not defined
console.log(c); // ❌ ReferenceError: c is not defined
console.log(d); // ❌ ReferenceError: d is not defined
console.log(e); // ❌ ReferenceError: e is not defined
console.log(f); // ❌ ReferenceError: f is not defined
Q23:
a()
b()
c()
function a () {
console.log('a')
}
const b = () => {
console.log('b')
}
var c = function() {
console.log('c')
}
a
TypeError: b is not a function
Q24:
const funcs = [];
for (var i = 0; i < 5; i++) {
funcs.push(() => i);
}
console.log(funcs.map(f => f()));
[5, 5, 5, 5, 5]
Q25:
Promise.resolve().then(() => console.log(1));
queueMicrotask(() => console.log(2));
setTimeout(() => console.log(3), 0);
console.log(4);
new Promise(() => console.log(5));
(async () => console.log(6))();
4
5
6
Q26:
async function foo() {
setTimeout(() => {
return 'done';
}, 1000);
}
foo().then(res => console.log(res));
undefined
Q27:
setTimeout(() => {
console.log('Macrotask - Timer');
}, 0);
Promise.resolve().then(() => {
console.log('Microtask - Promise');
});
console.log('End');
End
Microtask - Promise
Macrotask - Timer
پارت ۲ سوالات:
https://news.1rj.ru/str/danceswithcode/4618
@danceswithcode
#interview #js