ویرگول
ورودثبت نام
DevNull
DevNullمن علی برنامه نویس در حوضه وب هستم :)
DevNull
DevNull
خواندن ۱ دقیقه·۵ سال پیش

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

Code Image
Code Image


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

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

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

([] + ![])

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


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

false + true

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

false

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

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

[![] + 1]

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

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

["f","a","l","s","e"]

میشه

a

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

صد تا A

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

۱۰
۱۱
DevNull
DevNull
من علی برنامه نویس در حوضه وب هستم :)
روزمرگی هایمان
روزمرگی هایمان
در اینجا اتفاقات و مشکلاتی که برای برنامه نویسان مختلف انجام می شود را قرار میدهیم که ممکن است بدرد خیلی از ما بخورد :)
شاید از این پست‌ها خوشتان بیاید