জাভাস্ক্রিপ্ট টিউটোরিয়াল-শিখুন গল্পে গল্পে সাথে 1100+ Exercise

  • জাভাস্ক্রিপ্ট পরিচিতি-Introduction to JavaScript
  • প্রোগ্রামিং শুরু করতে কতটুকু গণিত লাগে?
  • প্রোগ্রামিং শুরু করতে কতটুকু ইংরেজি জানা লাগে?
  • ভালো প্রোগ্রামার কিভাবে হবো? [+৭টি গুরুত্বপূর্ণ টিপস]
  • পাশের বাসার আন্টির তুলনা
  • ভেরিয়েবলের তুলনা কখনো ভুলোনা
  • ডাবল নাকি ট্রিপল ===( এডভান্সড তুলনা)

ডাবল নাকি ট্রিপল ===( এডভান্সড তুলনা)


Uploaded Image


কপাল ভালো থাকলে দেখবি, পুরি অর্ডার দিছস দুইটা, কিন্তু দিয়ে দিছে তিনটা, কিংবা বিয়ে বাড়িতে খাবার দিচ্ছে তোর ফ্রেন্ড। তাকে বললি, দুইটা রসগোল্লা দে, আর সে দিয়ে দিছে তিনটা। তুই তো খুশিতে গদ গদ হয়ে যাবি। 


এই দুইটার জায়গায় তিনটা মাঝেমধ্যে জাভাস্ক্রিপ্টেও দেখতে পাবি এবং প্রথম প্রথম একটু ভেজাইল্লা মনে হবে। কিন্তু দুই দিন পরে দেখবি— দুইটার জায়গায় তিনটা রসগোল্লা পেয়ে যত খুশি হইছস, দুইটার জায়গায় তিনটা সমান চিহ্ন পেয়ে তার চেয়েও বেশি খুশি হবি।


আমরা এর আগে জেনেছিলাম, দুইটা সংখ্যা তুলনা করার জন্য ডাবল ইকুয়াল (==) ব্যবহার করি। যেমন, দুইটা সংখ্যাই সমান কি না। এটা তুলনা করার জন্য আমরা ডাবল ইকুয়াল (==) ব্যবহার করি, কিন্তু কিছু কিছু প্রোগ্রামিং ল্যাঙ্গুয়েজে ট্রিপল ইকুয়ালে (===) কিছু কাজ সম্পন্ন হয়।


এখন যদি আমরা 10 == 10 লিখি, যা আমরা কিছুক্ষণ আগে দেখছি যে 10 10-এর সমান, এটার জন্য true আসবে।

  console.log(10 == 10);

Output: true.


এখন যদি এখানে কোনো একটা সংখ্যাকে String করে দেই বা সিঙ্গেল কোটেশনের মধ্যে রাখি, তখন ব্যাপারটা কী হবে?

  console.log(10 == "10" );

Output: true


যখন আমরা ডাবল ইকুয়াল (==) দিয়ে compare করি, তখন শুধু মানটাকে compare করা হয়। এরা কী টাইপের ডাটা, সেটা কম্পেয়ার করে বা তুলনা করে দেখে না। এখন যদি কী টাইপের ডাটাও compare করে দেখতে চাস, তখন ট্রিপল ইকুয়াল (===) দিয়ে চেক করতে পারিস। যেমন:


  console.log(10 == "10" );
  console.log(10 === "10" );

Output: true 
false.


এখন দুইটা রেজাল্টের মধ্যে দুই রকম রেজাল্ট দিচ্ছে, ঘটনা কী?


ঘটনা হচ্ছে, যখন তুই ডাবল ইকুয়াল (==) দিয়ে চেক করিস, তখন সে শুধু মানটাকে তুলনা করে। সেটা কোন ধরনের টাইপের ডাটা, সেটা সে তুলনা করে না। এখানে একটা ছিল string, আরেকটা ছিল সংখ্যা, কিন্তু দুইটার মান সেইম। এখন যখন তুই ট্রিপল ইকুয়াল (===) ব্যবহার করিস, তখন সে কী চেক করে?


সে চেক করে সেটার মান এবং সেটার ডাটা টাইপ।


তাই যেটার মধ্যে ডাবল ইকুয়াল (==) ব্যবহার করে চেক করা হয়েছে, সেটার জন্য আউটপুট true আসছে এবং যেটার মধ্যে ট্রিপল ইকুয়াল (===) চেক করা হয়েছে, যেহেতু এখানে দুইটা টাইপ সমান না, তাই আউটপুট false আসছে।


এখন তুই চাইলে এটাকে বিভিন্নভাবে প্র্যাকটিস করতে পারিস। যেমন ধর:

 

  console.log(120 === "tomato" );


এখন এটার আউটপুট কী আসবে, সেটা তুই বল।


আরেকটা opposite জিনিস আছে, সেটা হচ্ছে not equal (!=). Similar হিসাব তুই যদি দেখতে চাস:


  console.log(10 != 10 );

Output: false


এখানে কন্ডিশনে কী বলতেছে? not equal মানে সমান না, কিন্তু ওপরের মান দুইটাই সমান। তাই এই কন্ডিশনের আউটপুট false হবে। আবার এখানে যদি একটাকে String বানানো হয়:


  console.log(10 != "10" );


এই ক্ষেত্রে কি আউটপুটের কোনো পরিবর্তন আসবে না, যেহেতু এখানে শুধু মানকে চেক করা হচ্ছে। সেজন্য এখানে আউটপুট হবে false। এখন যদি আমরা এটাকে এরকমভাবে লিখি:


  console.log(10 !== "10" );


এটার আউটপুট কী হবে? এটার আউটপুট হবে true। কারণ, এখানে সে ডাটা টাইপটাও ম্যাচ করতেছে।



JavaScript Advanced Comparison Practice:

  1. তোর কাছে 50 টাকা আছে, আর বন্ধুর কাছে আছে "50" টাকা (স্ট্রিং হিসেবে)। একটা প্রোগ্রাম লিখে দেখ, 50 == "50" দিলে আর 50 === "50" দিলে আউটপুট কী আসবে।
  2. তোর প্রোগ্রামিং নোটবুকে "JavaScript" লিখে রেখেছিস, আর এটা একটা স্ট্রিং টাইপ ডাটা। এখন তুই দেখতে চাস "JavaScript" == 'JavaScript' আর "JavaScript" === 'JavaScript' দিলে কী আউটপুট আসবে। ব্যাখ্যা কর, কেন একই আউটপুট আসছে।
  3. একটা প্রোগ্রাম লিখে দেখ, 25 এবং "25"-এর মধ্যে 25 == "25" এবং 25 === "25" দিলে কী আউটপুট আসবে এবং কেন সেটা হয়, সেটা কমেন্ট করে লিখ। 
  4. "apple" এবং "apple" লিখে তুলনা করলে, "apple" == "apple" এবং "apple" === "apple"-এর আউটপুট কী হবে।
  5. একটা প্রোগ্রাম লিখে দেখ, "test" এবং "TEST"-এর মধ্যে "test" == "TEST" এবং "test" === "TEST"-এর আউটপুট কী হবে।
  6. variableX-এর মান 15 আর variableY-এর মান "20" দিলে variableX != variableY এবং variableX !== variableY-এর আউটপুট কী হবে।
  7. variableA-এর মান hello আর variableB-এর মান "Hello"। এখন variableA == variableB এবং variableA === variableB চেক করার প্রোগ্রাম লিখ।


Previous PageNext Chapter