همهی ما 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