কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে "if ('0' == false)" কেন false হয় কিন্তু "if(0)" true দেয়?


শর্ত দুটো আলাদা আলাদা দেখি:

if('0' == false)

এটি নিচের নিয়ম অনুসরণ করে:

If Type(y) is Boolean, return the result of the comparison x == ToNumber(y)

== টাইপ কোэрসন (type coercion) করে। অর্থাৎ দুটি অপারেন্ডের টাইপ মিলাতে স্পষ্ট টাইপ রূপান্তর অনুরোধ করা হয়। বাম পাশের '0' নম্বর 0-এ রূপান্তরিত হয়। দুটি নম্বর তুলনা করলে, যেহেতু 0 সমান 0, ফলাফল true। কিন্তু এই ক্ষেত্রে এটি কাজ করে না কারণ '0' স্ট্রিং-এরTruthy/falsy প্রকৃতি সম্পর্কে কোনো ইমপ্লিকেশন দেয় না, কারণ তুলনার আগে এটি কোэрস হয়ে গেছে।

if(0)

এটি চেক করে স্ট্রিং null বা খালি কিনা, نه اینکه সেটি শূন্য কিনা। স্মরণ রাখুন, একটি নন-এম্পটি স্ট্রিং সবসময় true। এখানে কোনো টাইপ কোэрসন ব্যবহৃত হয় না কারণ স্ট্রিং নিজস্ব মেরিট অনুযায়ী truthy বা falsy হিসেবে মূল্যায়ন করা যায়।


  1. জাভাস্ক্রিপ্টে for...in স্টেটমেন্ট ব্যাখ্যা

  2. জাভাস্ক্রিপ্টে continue স্টেটমেন্ট

  3. জাভাস্ক্রিপ্টে debugger স্টেটমেন্ট

  4. জাভাস্ক্রিপ্টে ফলসি ভ্যালু চিহ্নিত করা