🔺Kyle Simpson - Keep Betting On JavaScript ✌🏻
https://youtu.be/ft5bYnt0W48
#link #js #javascript #kylesimpson
@ProGraphs
https://youtu.be/ft5bYnt0W48
#link #js #javascript #kylesimpson
@ProGraphs
YouTube
Kyle Simpson - Keep Betting On JavaScript
Brendan Eich's famous quip, "Always bet on JavaScript", revels in JS's history of naysayers predicting that we'd eventually reach a point where JS couldn't grow to meet the demands of modern development; it turns out those have always been bad bets. It's…
در این کد برای event کلیک یک عنصر، دو listener تعریف کردهایم.
با کلیک کردن بر روی این عنصر، چه مقادیری در کنسول چاپ میشوند؟
(به ترتیب از چپ به راست)
#interviewquestion #js #async
@ProGraphs
با کلیک کردن بر روی این عنصر، چه مقادیری در کنسول چاپ میشوند؟
(به ترتیب از چپ به راست)
#interviewquestion #js #async
@ProGraphs
همهی ما strict-mode را به عنوان یک ویژگی برای محدود کردن بعضی رفتارهای نامتعارف جاوااسکریپت میشناسیم.
اما فواید strict-mode فقط به اینجا ختم نمیشود.
❗️در واقع محدودیتهای بیشتری که تو این حالت اعمال میشود، به انجین جاوااسکریپت اجازه میدهد که بهینهسازیهای بیشتری هم روی کد انجام دهد.
به عنوان مثال در یکی از مطالب قدیمیتر، با wrapper objectها آشنا شدیم.
❗️و دیدیم که به لطف wrapper objectها، دادههای primitive هم میتوانند مثل آبجکتها متد داشته باشند.
یعنی در کد زیر، جاوااسکریپت به صورت خودکار string را تبدیل به یک wrapper object میکند تا متد trim را روی آن صدا کند:
برای اثبات این موضوع به کد داخل تصویر دقت کنید.
میبینید که متد دوم که در حالت strict-mode اجرا میشود، هیچ آبجکت اضافهای برای box کردن string نمیسازد.
#quicktip #js #optimization
@ProGraphs
اما فواید strict-mode فقط به اینجا ختم نمیشود.
❗️در واقع محدودیتهای بیشتری که تو این حالت اعمال میشود، به انجین جاوااسکریپت اجازه میدهد که بهینهسازیهای بیشتری هم روی کد انجام دهد.
به عنوان مثال در یکی از مطالب قدیمیتر، با wrapper objectها آشنا شدیم.
❗️و دیدیم که به لطف wrapper objectها، دادههای primitive هم میتوانند مثل آبجکتها متد داشته باشند.
یعنی در کد زیر، جاوااسکریپت به صورت خودکار string را تبدیل به یک wrapper object میکند تا متد trim را روی آن صدا کند:
"some string".trim()
❗️اما جالبه بدونید که تو حالت strict-mode، وقتی از یکی از متدهای اعداد یا stringها استفاده میکنیم، انجین جاوااسکریپت یک wrapper object اضافه نمیسازد و مستقیما از متدی که داخل prototype تعریف شده استفاده میکند!برای اثبات این موضوع به کد داخل تصویر دقت کنید.
میبینید که متد دوم که در حالت strict-mode اجرا میشود، هیچ آبجکت اضافهای برای box کردن string نمیسازد.
#quicktip #js #optimization
@ProGraphs
به کد زیر دقت کنید:
اما چرا وقتی از arrow functionها در کلاسهای جاوااسکریپت استفاده میکنیم، مقدار this به خود آبجکتهای کلاس اشاره میکند؟
به عنوان مثال به کد داخل تصویر (که یک کلاس کامپوننت ریاکت است) دقت کنید.
متد handleClick را به صورت arrow function تعریف کردهایم، اما مقدار this به خود آبجکت react element اشاره میکند! (دقیقا برعکس رفتاری که در کد بالا دیدیم)
چرا رفتار arrow functionها در آبجکتها و class fieldهای جاوااسکریپت متفاوت است؟
#interviewquestion #js #react #thiskeyword
@ProGraphs
let obj = {
whatIsThis: () => {
console.log("this is:", this);
}
};
در این کد، متد whatIsThis داخل آبجکت obj تعریف شده است. اما با توجه به اینکه arrow functionها در جاوااسکریپت this ندارند، مقدار this داخل این تابع به آبجکت گلوبال اشاره میکند (و نه به خود آبجکت obj).اما چرا وقتی از arrow functionها در کلاسهای جاوااسکریپت استفاده میکنیم، مقدار this به خود آبجکتهای کلاس اشاره میکند؟
به عنوان مثال به کد داخل تصویر (که یک کلاس کامپوننت ریاکت است) دقت کنید.
متد handleClick را به صورت arrow function تعریف کردهایم، اما مقدار this به خود آبجکت react element اشاره میکند! (دقیقا برعکس رفتاری که در کد بالا دیدیم)
چرا رفتار arrow functionها در آبجکتها و class fieldهای جاوااسکریپت متفاوت است؟
#interviewquestion #js #react #thiskeyword
@ProGraphs
توی این کد سعی میکنیم درخواستی به سرور بفرستیم و اگر درخواست fail شد، بعد از 100ms دوباره این کار رو تکرار میکنیم.
اما بعد از اجرا شدن این پروسه به مدت طولانی، متوجه memory leak میشیم.
آیا میتونید این مشکل رو پیدا و حل کنید؟
(عکس ویرایش شد)
#question #js #promise #memoryleak
@ProGraphs
اما بعد از اجرا شدن این پروسه به مدت طولانی، متوجه memory leak میشیم.
آیا میتونید این مشکل رو پیدا و حل کنید؟
(عکس ویرایش شد)
#question #js #promise #memoryleak
@ProGraphs