من علی برنامه نویس در حوضه وب هستم :)
منطق عجیبه جاوااسکیریپت
- سلام میشه اینو بهم بگی چرا اینطوری میشه ؟
+ دقیق نمیدونم ولی احتمالا اینجوری باشه
قدم به قدم جلو میریم
([] + ![])
خب ببین آرایه های خالی falsey value هستند که جمع نمیشن و تنها شرطی عمل میکنند و با هرچی جمع بشن مقداری بهش اضافه نمیکنن حتی اگر مقدارشون معکوس بشه به truthy
پس فهمیدی که ارایه خالی یک مقدار فالس هست ، حالا میگه که
false + true
نمیدونم چرا ولی این رو شرط محسوب میکنه و میگه که آیا فالس و ترو باهم جمع میشوند ؟ پاسخ خیر یعنی
false
بعد این داده false رو داخل خودش نگر میداره چون بین پارانتر هست
حالا میاد با استفاده فیچر ایندکس جاوا اسکریپت میگه که ایندکس
[![] + 1]
رو بهم بده ، بالاتر گفتم که توی جمع حتی اگه برعکس هم بشن بازم حساب نمیشن پس پاسخ میشه 1 ، ایندکس یک رو وقتی میخواد بگیره یه باگ داره جاوا اسکریپت و false رو به شکل استرینگ و تیکه تیکه در ارایه ذخیره میکنه احتمالا چون محاسبه شرطی ارایه بوده همچین باگی رو داده
بعد میاد ایندکس 1 رو پیدا میکنه که طبق حرف ما
["f","a","l","s","e"]
میشه
a
بعد چون استرینگ هست یه متد داره به نام repeat که استرینگ رو هر تعداد که بگی تکرار میکنه ، اینجا ۱۰۰ بار a رو تکرار میکنه و در نهایت میاد میگه که uppercase بکنش که میشه
صد تا A
مکالمه دو برنامه نویس گفتم بزارمش شاید بدرد بخوره !
مطلبی دیگر از این انتشارات
آیا پایتون واقعا 200 برابر از C کندتر است؟ دلایلی برای کند بودن پایتون
مطلبی دیگر از این انتشارات
فعال کردن نمایش ارور در هاست php :)
مطلبی دیگر از این انتشارات
ساخت ربات تلگرام - قسمت اول