Skip to content
আর্টিকেলJavaScript

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

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

৩ মিনিটের পড়া
শেয়ার

0 == '0' সত্যি, কিন্তু 0 === '0' মিথ্যা। কারণ == তুলনার আগে দুই পাশকে এক টাইপে আনার চেষ্টা করে।

নিয়মটা হলো: এক পাশ সংখ্যা আর অন্য পাশ স্ট্রিং হলে, স্ট্রিংটাকে সংখ্যা বানানো হয়। তাই '0' হয়ে যায় 0, আর 0 == 0 স্বাভাবিকভাবেই সত্যি।

মজার ব্যাপার হলো এটা ট্রানজিটিভ নয়:

JavaScript
0 == '' // true
0 == '0' // true
'' == '0' // false

প্রথম দুটোয় স্ট্রিং সংখ্যায় রূপান্তরিত হয়। তৃতীয়টায় দুই পাশই স্ট্রিং, তাই কোনো রূপান্তর হয় না — আর '' কখনো '0'-এর সমান নয়।

তাই === ব্যবহার করুন। ব্যতিক্রম একটাই: x == null লিখলে null আর undefined দুটোই এক সাথে ধরা পড়ে, যেটা মাঝে মাঝে আসলেই যা দরকার।

মাসে একটা কাজের ইমেইল

ডিজাইন সিস্টেম প্যাটার্ন, ফ্রন্ট-এন্ড টেকনিক আর লার্ন প্ল্যাটফর্মের নোট। কোনো প্রচার নেই, অন্যের লিংকের সংকলনও নেই।

যেকোনো সময় আনসাবস্ক্রাইব করতে পারবেন। আপনার ঠিকানা কারো সাথে শেয়ার করি না।