Skip to content
Daily learningJavaScript

`==` কেন `0 == "0"` সত্যি বলে

টাইপ কোয়ার্শনের নিয়মটা অদ্ভুত নয়, শুধু লেখা থাকে না।

3 min
Share

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.

Unsubscribe anytime. We never share your address.