0 == '0' সত্যি, কিন্তু 0 === '0' মিথ্যা। কারণ == তুলনার আগে দুই পাশকে
এক টাইপে আনার চেষ্টা করে।
নিয়মটা হলো: এক পাশ সংখ্যা আর অন্য পাশ স্ট্রিং হলে, স্ট্রিংটাকে সংখ্যা বানানো
হয়। তাই '0' হয়ে যায় 0, আর 0 == 0 স্বাভাবিকভাবেই সত্যি।
মজার ব্যাপার হলো এটা ট্রানজিটিভ নয়:
0 == '' // true
0 == '0' // true
'' == '0' // false
প্রথম দুটোয় স্ট্রিং সংখ্যায় রূপান্তরিত হয়। তৃতীয়টায় দুই পাশই স্ট্রিং, তাই
কোনো রূপান্তর হয় না — আর '' কখনো '0'-এর সমান নয়।
তাই === ব্যবহার করুন। ব্যতিক্রম একটাই: x == null লিখলে null আর
undefined দুটোই এক সাথে ধরা পড়ে, যেটা মাঝে মাঝে আসলেই যা দরকার।
One useful email a month
Design system patterns, front-end techniques and case study breakdowns. No promotions, no digest of other people's links.