کد زیر را ببین:
console.log([] == false);
خروجی:
true
اما چرا؟
زبان JavaScript قبل از مقایسه، مقدارها را بهصورت خودکار تبدیل (Type Coercion) میکند.
در این مثال:
[] -> ""
"" -> 0
false -> 0
در نهایت:
0 == 0
و نتیجه:
true
✅ راهحل؟
هیچوقت برای مقایسه از
== استفاده نکن.همیشه:
===
را انتخاب کن.
💡 بسیاری از باگهای عجیب JavaScript از همین تبدیل خودکار نوع داده شروع میشوند.
@CodeVerse_dev