منطق عجیبه جاوااسکیریپت

Code Image
Code Image


- سلام میشه اینو بهم بگی چرا اینطوری میشه ؟

+ دقیق نمی‌دونم ولی احتمالا اینجوری باشه

قدم به قدم جلو میریم

([] + ![])

خب ببین آرایه های خالی falsey value هستند که جمع نمیشن و تنها شرطی عمل می‌کنند و با هرچی جمع بشن مقداری بهش اضافه نمیکنن حتی اگر مقدارشون معکوس بشه به truthy


پس فهمیدی که ارایه خالی یک مقدار فالس هست ، حالا میگه که

false + true 

نمی‌دونم چرا ولی این رو شرط محسوب می‌کنه و میگه که آیا فالس و ترو باهم جمع میشوند ؟ پاسخ خیر یعنی

false 

بعد این داده false رو داخل خودش نگر میداره چون بین پارانتر هست

حالا میاد با استفاده فیچر ایندکس جاوا اسکریپت میگه که ایندکس

[![] + 1]

رو بهم بده ، بالاتر گفتم که توی جمع حتی اگه برعکس هم بشن بازم حساب نمیشن پس پاسخ میشه 1 ، ایندکس یک رو وقتی میخواد بگیره یه باگ داره جاوا اسکریپت و false رو به شکل استرینگ و تیکه تیکه در ارایه ذخیره می‌کنه احتمالا چون محاسبه شرطی ارایه بوده همچین باگی رو داده

بعد میاد ایندکس 1 رو پیدا می‌کنه که طبق حرف ما

[&quotf&quot,&quota&quot,&quotl&quot,&quots&quot,&quote&quot]

میشه

a

بعد چون استرینگ هست یه متد داره به نام repeat که استرینگ رو هر تعداد که بگی تکرار می‌کنه ، اینجا ۱۰۰ بار a رو تکرار می‌کنه و در نهایت میاد میگه که uppercase بکنش که میشه

صد تا A

مکالمه دو برنامه نویس گفتم بزارمش شاید بدرد بخوره !