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

JavaScript Ternary Operators: ধাপে ধাপে গাইড

JavaScript ternary operator একটি স্টেটমেন্ট ইভ্যালুয়েট করে এবং দুটি ভ্যালুর একটি রিটার্ন করে। একটি ternary operator কে ইনস্ট্রাক্ট করা যায় স্টেটমেন্ট true হলে একটি ভ্যালু রিটার্ন করতে বা false হলে অন্য একটি ভ্যালু রিটার্ন করতে। Ternary operator-এর সিনট্যাক্স হলো: statement ? if_true : if_false;।


কখনও কখনও আপনি শুধু নির্দিষ্ট কোড রান করতে চান যখন নির্দিষ্ট শর্তাবলী পূরণ হয়।

উদাহরণস্বরূপ, আপনার ই-কমার্স ওয়েবসাইটে একটি date of birth ফিল্ড আছে বলে ধরুন। আর ধরুন আপনি আপনার ওয়েবসাইটে শুধু ১৮ বছরের বেশি কাস্টোমারদের পণ্য কেনার অনুমতি দেন। আপনি চেক করতে চাবেন একজন ব্যবহারকারী সাইট ব্যবহার করার আগে ঠিক বয়সে আছে কিনা।

পটেনশিয়াল আউটকাম হলো true বা false, তাই আমরা একটি ternary operator ব্যবহার করতে পারি চেক করতে একজন ব্যবহারকারী ঠিক বয়সে আছে কিনা।

এই টিউটোরিয়ালে, আমরা ternary operators কীভাবে ব্যবহার করতে হয় তা আলোচনা করব। শুরু করতে আপনাকে সাহায্য করার জন্য একটি উদাহরণ রেফার করব।

JavaScript Ternary Operator কী?

JavaScript ternary operators, যাকে conditional ternary operators বলা হয়, জাভাস্ক্রিপ্ট if...else স্টেটমেন্টের সাথে মিলত। একটি ternary operator চেক করে একটি কন্ডিশন পূরণ হয়েছে কিনা, এবং সেটার উপর নির্ভর করে কিছু করে যে কন্ডিশন পূরণ হয়েছে কিনা।

Ternary expression-এর নিচের সিনট্যাক্স আছে:

(condition) ? if true, then run : if false, then run

একটি কন্ডিশন প্রথমে আসে, তারপর একটি কয়েসচন মার্ক। প্রথম এক্সপ্রেশনটি এক্সিকিউট হবে যদি কন্ডিশন পূরণ হয়। দ্বিতীয় এক্সপ্রেশনটি এক্সিকিউট হবে যদি কন্ডিশন পূরণ না হয়।

বেসিক্সে ফেরত: if স্টেটমেন্টস

সবচেয়ে বেসিক জাভাস্ক্রিপ্ট কন্ডিশনাল অপারেটর হলো একটি "if" স্টেটমেন্ট। এই স্টেটমেন্টটি একটি কন্ডিশন পূরণ হলে একটি কোড ব্লক এক্সিকিউট করার অনুমতি দেয়। অন্যথায়, প্রোগ্রাম একটি অপশনাল "else" স্টেটমেন্টের কন্টেন্ট এক্সিকিউট করে।

একটি if স্টেটমেন্টের উদাহরণ। আমরা আগে যে ই-কমার্স সাইটের উদাহরণ ব্যবহার করেছি যা এর ইউজারদের বয়স ভেরিফাই করে।

// Declare our customer object
let customer = {
  name: "Joe",
  age: 15
}
if (customer.age >= 18) {
  user_is_right_age = true;
} else {
  user_is_right_age = false;
}

আমাদের if স্টেটমেন্ট রান করবে, এবং user_is_right_age false-এ সেট হবে। প্রোগ্রাম প্রথমে চেক করে কাস্টোমারের বয়স ১৮ বা তার বেশি কিনা। যেহেতু ব্যবহারকারী ১৮ বছরের বেশি নয়, else ক্লজ এক্সিকিউট হয়, এবং user_is_right_age-কে false-এ সেট করে।

যদিও এই কোড কাজ করে, এটি অনেক কোড! আমাদের কাস্টোমারের বয়স ভেরিফাই করতে পাঁচ লাইন লাগে।

আমি আপনাকে বলি একটি রাস্তা আছে একই ফাংশন শুধু এক লাইন কোডে পারফর্ম করার? সেটাই ternary operator-এ আসে।

JavaScript Ternary Operator উদাহরণ

আমরা আমাদের আগের if স্টেটমেন্টকে ternary operator ব্যবহার করে সিম্পলিফাই করতে পারি:

user_is_right_age = customer.age >= 18 ? true : false;

এই কোড, এক্সিকিউট হলে, আমাদের উপরের কোডের মতো একই ফলাফল দেয় (false), কিন্তু কম লাইনে। যদি কন্ডিশনাল true হত—যদি ব্যবহারকারীর বয়স ১৮ বা তার বেশি হত—তবেই আমাদের প্রোগ্রাম true রিটার্ন করত।

আমরা উপরে যে উদাহরণটি ব্যবহার করেছি, সেটায় আমাদের প্রোগ্রাম চেক করে ব্যবহারকারী ঠিক বয়সে আছে কিনা। আমাদের কোড false রিটার্ন করে কারণ ব্যবহারকারী ১৮ বছরের নিচে—আমাদের কন্ডিশন পূরণ হয়নি।

আর একটি উদাহরণে যাই। ধরুন আমরা চেক করতে চাই আমাদের সাইটের একটি কাস্টোমার এক্সপ্রেস ডেলিভারির জন্য এলিজিবল কিনা। আমরা এটা জাভাস্ক্রিপ্ট ternary operator-এ করতে পারি:

let userIsExpressCustomer = true;
let shippingTimeForCustomer = userIsExpressCustomer ? 48 : 72;

আমাদের ternary operator চেক করবে ইউজার এক্সপ্রেস কাস্টোমার কিনা, তারপর ইউজারের জন্য শিপিং টাইম নির্ধারণ করবে। উপরে দেখানো মতো, আমাদের ইউজার একটি এক্সপ্রেস কাস্টোমার, তাই কন্ডিশন true-এ ইভ্যালুয়েট হয়, তাদের ৪৮-ঘণ্টার ডেলিভারি मिलবে। যদি আমাদের কাস্টোমার এক্সপ্রেস কাস্টোমার নয় হত, আমাদের কোড false-এ ইভ্যালুয়েট হত। তাহলে, কাস্টোমারটি ৭২-ঘণ্টার ডেলিভারি পেত।

Nested JavaScript Ternary Operators

একটি nested JavaScript ternary operator হলো একটি ternary অন্য একটি ternary-এর ভিতরে। এই স্টেটমেন্টগুলো উপযোগী যদি আপনি একাধিক অপারেশন ইভ্যালুয়েট করতে চান। কিন্তু, আপনি সতর্ক না থাকলে সেগুলো দ্রুত পড়তে কঠিন হয়ে যেতে পারে।

ধরুন আমরা একটি ই-কমার্স কোম্পান যা তিনটি ডেলিভারি টাইম অফার করে: স্ট্যান্ডার্ড (৭২ ঘণ্টা), এক্সপ্রেস (৪৮ ঘণ্টা); এবং এক-দিন (২৪ ঘণ্টা)। এই কেসে ternary operator কীভাবে ব্যবহার করব, যেহেতু তিনটি অপশন আছে? কি শুধু if...else স্টেটমেন্ট ব্যবহার করব?

চিন্তা করবেন না, আপনি JS ternary operator তিনটি এক্সপ্রেশনের সাথেও ব্যবহার করতে পারেন। উপরের উদাহরণটি একশনে দেখুন:

let userIsExpressCustomer = false;
let userIs24HourCustomer = true;
let shippingTimeForCustomer = userIsExpressCustomer ? 48 : userIs24HourCustomer ? 24 : 72;

এই কেসে, আমাদের কাস্টোমারের জন্য শিপিং টাইম হবে ২৪ ঘণ্টা। এই প্রোগ্রাম প্রথমে চেক করে ইউজার এক্সপ্রেস কাস্টোমার কিনা, যাঁরা নয়। তারপর, চেক করে তারা ২৪-ঘণ্টার কাস্টোমার কিনা, যেটা true। তাই, shippingTimeForCustomer ভেরিয়েবলটিকে ২৪ মান অ্যাসাইন করা হয়।

যদি ইউজার এক্সপ্রেস বা ২৪-ঘণ্টার কাস্টোমার না হত, তাদের ডেলিভারি টাইম হত ৭২ ঘণ্টা।

উপসংহার

JavaScript ternary operator if স্টেটমেন্টের একটি অ্যাল্টার্নেটিভ যখন আপনি চাইতে চান একটি কন্ডিশন true বা false কিনা ইভ্যালুয়েট করতে। আপনি একাধিক ternary operators অন্য একটি operator-এর ভিতরে এনক্লোজ করতে পারেন।

কন্ডিশনাল স্টেটমেন্টগুলো যেমন ternary operator নির্দিষ্ট কোড শুধু তখন রান করে যখন নির্দিষ্ট শর্তাবলী পূরণ হয়। সেগুলো প্রায় সব প্রোগ্রামিং ল্যাঙ্গুয়েজের কী কম্পোনেন্ট এবং প্রায় সব জাভাস্ক্রিপ্ট প্রোগ্রামে আপনি লিখবেন সেখানে আসবে।

আপনি কি জাভাস্ক্রিপ্ট সম্পর্কে আরও জানতে আগ্রহী? আমরা আপনাকে কভার করেছি। জাভাস্ক্রিপ্ট শিখতে আমাদের একটি কমপ্লিট গাইড আছে। এই গাইডে, আপনাকে জাভাস্ক্রিপ্ট নলেজ আরও এডভান্স করার জন্য যেসব রিসোর্স দরকার সেগুলো পাবেন।

  1. জাভাস্ক্রিপ্ট ফাংশন ব্যবহার: ধাপে ধাপে গাইড

  2. JavaScript Onclick: ধাপে ধাপে গাইড

  3. জাভাস্ক্রিপ্ট স্প্রেড অপারেটর

  4. জাভাস্ক্রিপ্টে রেস্ট এবং স্প্রেড অপারেটর