৪ সেপ্টেম্বর, ২০২২
পড়তে মিনিট লাগতে পারে

জাভাস্ক্রিপ্টঃ অপারেটর নিয়ে সবকিছু

শেয়ার করুনঃ

এই পর্বে আমি অপারেটর নিয়ে বিস্তারিত আলোচনা করবো। অপারেটর খুবই ব্যাসিক জিনিস, আমরা সবাই এমনিতেও জানি। কিন্তু এ সম্পর্কে ভালো ধারণা থাকতে হবে। কারণ অপারেটর অনেকভাবে ইউজ করা হয়।

ধরুন ২ + ৪ এ ৬ হয়, এখন এখানে + হচ্ছে অপারেটর, আর ২ এবং ৪ হচ্ছে অপারেন্ড। আমরা এখন এইধরনের অপারেটর নিয়েই আলোচনা করবো।

এই পর্বে অনেককিছু কি কাজে লাগতে পারে সেটা নিয়া কনফিউসান তৈরী হতে পারে, কিন্তু এগুলা আসলে আপনার সবকিছুর বেইস। তাই আপনার এগুলার ব্যাপারে ক্লিয়ার ধারণা থাকা জরুরী। আপনাকে যে সবকিছু মনে রাখতে হবে বা মুখস্ত করে ফেলতে হবে এমন কোনো কথা নাই। প্র্যাক্টিস করতে করতে এমনেই মনের মধ্যে ঢুকে যাবে।

জাভাস্ক্রিপ্ট এ কয়েকরকম এর অপারেটর আছেঃ

১। অ্যারিথমেটিক অপারেটর

২। কম্পারিজম অপারেটর

৩। লজিক্যাল/রিলেশনাল অপারেটর

৪। অ্যাসাইনমেন্ট অপারেটর

৫। কন্ডিশনাল/টার্নারি অপারেটর

এগুলা নাম থেকে অনেকটা ধারণা করা যায় কোনগুলো কোন কাজের জন্য হতে পারে। আমি নিচে বিস্তারিত আলোচনা করছি প্রত্যেকটা। আপনি ক্রোমের ডেভেলপার কন্সোল ওপেন করে প্র্যাক্টিস করবেন একটা একটা করেঃ

১। অ্যারিথমেটিক অপারেটরঃ যোগ, বিয়োগ, গুণ, ভাগ করার জন্যে এই অ্যারিথমেটিক অপারেটর ইউজ করা হয়। তবে এগুলা ছাড়াও আরো কয়েকটা আছেঃ

  • + — দুইটা অপারেন্ড যোগ করার জন্যে
সাধারণ যোগ
সেইম ভ্যারিয়েবলের ক্ষেত্রেও
  • - — দুইটা অপারেন্ড বিয়োগ করার জন্যে
বিয়োগ
  • * — দুইটা অপারেন্ড গুণ করার জন্যে
গুণ
  • / — দুইটা অপারেন্ড ভাগ করার জন্যে
ভাগ

স্পেশাল নোটঃ ভাগফল দশমিক এ আসলে দশমিকেই রেজাল্ট শো করবে

দশমিক এ দেখাচ্ছে।
  • % (মডুলাস) — ভাগশেষ বের করার জন্যে, এটা আসলে অনেক ইউজফুল একটা অপারেটর। ১৩ ভাগ ৫ এ রেজাল্ট হয় ২, কিন্তু ভাগশেষ থাকে ৩। এই ভাগশেষ বের করতেই এই অপারেটর ইউজ করা হয়
ভাগশেষ দেখাচ্ছে
  • ++ (ইনক্রিমেন্ট) — এটা আপনার অপারেন্ড এর সাথে ১ যোগ করবে। ধরুন আপনার একটা ভ্যারিয়েবল আছে a যেটার ভ্যালু 10, এখন a++ লিখলে এটার ভ্যালুর সাথে এক যোগ হবে। এটা a = a + 1এটার শর্টকাট বলা চলে।
ভ্যালু ইনক্রিমেন্ট হচ্ছে
  • -- (ডিক্রিমেন্ট) — অনেকটা ইনক্রিমেন্ট অপারেটরের মতোই কিন্তু ভ্যালু ১ কমাবে। সেইমভাবে এটাও a = a - 1এটার শর্টকাট।
ভ্যালু ডিক্রিমেন্ট হচ্ছে

লক্ষণীয়ঃ এই ইনিক্রিমেন্টাল/ডিক্রিমেন্টাল অপারেটরগুলো আপনার ভ্যারিয়েবলের আগে এবং পরে দুই পজিশনেই বসতে পারে। পার্থক্য হলো আগে থাকলে ভ্যালুর ইনক্রিমেন্ট/ডিক্রিমেন্ট আগে হয়, তারপর ভ্যালু রিটার্ন করে। আর পরে থাকলে আগে রিটার্ন করে, পরে ভ্যালুর ইনক্রিমেন্ট/ডিক্রিমেন্ট হয়।

a++ ১০ ই দেখাচ্ছে
কিন্তু পরে আবার অ্যাক্সেস করায় দেখা যাচ্ছে এটার ভ্যালু পরিবর্তন হয়েছে।
এখানে প্রথম রিটার্নই করছে চ্যাঞ্জ হওয়া ভ্যালু

সেইম ডিক্রেমেন্টাল অপারেটরের ক্ষেত্রেও। ক্ষেত্রবিশেষে কাজে লাগে এগুলা অনেক, তাই মাথায় থাকা ভালো।

২। কম্পারিজম অপারেটরঃ একটা ভ্যালুর সাথে আরেকটা কম্পেয়ার করার জন্য। দুইটা ভ্যালু সমান কি সমান না, নাকি বড় না ছোটো। এরা রেজাল্ট হিসাবে হয় সত্য true অথবা মিথ্যা false রিটার্ন করে।

  • == (ইকুয়্যাল) — দুইটার ভ্যালু সমান সমান কিনা দেখার জন্যে। সমান হলে সত্য true নাইলে মিথ্যা false রিটার্ণ করবে।
সমান সমান কি?
সমান সমান? না…
  • != (ইকুয়্যাল না) — দুইটার ভ্যালু সমান না হলে সত্য true দেখাবে
সমান না তো?
সমান না তো?
  • > (বড়) — একটা আরেকটা থেকে বড় কিনা সেটা দেখার জন্যে। বড় হলে সত্য true নাইলে মিথ্যা false
বড় তো?
বড় তো?
  • < (ছোট) — একটা আরেকটা থেকে ছোটো কিনা সেটা দেখার জন্যে। ছোটো হলে সত্য true নাইলে মিথ্যা false
ছোটো তো?
ছোটো তো?
  • >= (বড় অথবা ইকুয়্যাল) — একটা আরেকটা থেকে বড় বা সমান সমান কিনা সেটা দেখার জন্যে। বড় বা সমান হলে সত্য true নাইলে মিথ্যা false
বড় অথবা সমান সমান কি?
বড় অথবা সমান সমান কি?
বড় অথবা সমান সমান কি?
  • <= (ছোটো অথবা ইকুয়্যাল) — একটা আরেকটা থেকে ছোটো বা সমান সমান কিনা সেটা দেখার জন্যে। ছোটো বা সমান হলে সত্য true নাইলে মিথ্যা false
ছোটো অথবা সমান সমান কি?
ছোটো অথবা সমান সমান কি?
ছোটো অথবা সমান সমান কি?

গুরুত্বপূর্নঃ এগুলার বাইরেও আরো মোস্ট ইউস কিছু অপারেটর রয়েছে। যেমন === এবং !== এগুলা ব্যাসিকেলি ইকুয়্যাল == বা ইকুয়্যাল না != অপারেটরের মতোই কিন্তু মেইন পার্থক্য হলো ট্রিপল ইকুয়্যাল অপারেটর ভ্যালু দুইটা সমান কিনা সেটা চ্যাক করে এবং সাথে দুইটা একই টাইপের কিনা সেটাও চ্যাক করে। যেখানে ডাবল অপারেটরগুলো শুধুমাত্র ভ্যালু দুইটা সমান কিনা চ্যাক করে, টাইপ চ্যাক করে না।

এখানে প্রথমটা নাম্বার মনে হলেও এটা স্ট্রিং, তাই ডাবল অপারেটর ট্রু দেখালেও ট্রিপল ফলস দেখাচ্ছে
সেইম কেইস আগেরটার মতোই

এগুলা আসলে অনেক ইউজ হয় এবং জাভাস্ক্রিপ্ট এ অনেকটা ইউনিক তাই ভালো করে মনে রাখা বা এগুলা সম্পর্কে ধারণা রাখা ভালো।

৩। লজিক্যাল অপারেটরঃ তিনরকমের হতে পারেঃ

  • && (এন্ড) — সাধারণত দুইটা অপারেন্ড এর মাঝখানে বসে। এবং যদি দুইটা স্টেটমেন্ট সত্য true হয় তাহলে পুরোটা সত্ য নাইলে যেকোনো একটাও যদি মিথ্যা falseহয় তাহলে পুরোটাই মিথ্যা false। আর যদি দুইটাই মিথ্যা false হয়, তাহলেও পুরোটা মিথ্যা false
সবগুলা সত্য হলেই তবে পুরোটা সত্য
একটা মিথ্যা হলেই পুরোটা মিথ্যা
আপনি চাইলে অনেকগুলাও একসাথে এভাবে ইউজ করতে পারবেন
  • ।। (অর) — সাধারণত দুইটা অপারেন্ড এর মাঝখানে বসে। এবং যদি যেকোনো একটা সত্য true হয় তাহলে সত্য true, দুইটাই যদি সত্য true হয় তাহলেও পুরোটা সত্য true। আর যদি একমাত্র দুইটা স্টেট্মেন্টই মিথ্যা false হয় তাহলেই পুরোটা মিথ্যা false হবে
সবগুলা সত্য হলে পুরোটাই সত্য
যেকোনো একটা সত্য হলেই সবটা সত্য
সবগুলা মিথ্যা হলে তবেই পুরোটা মিথ্যা
এভাবে অনেকগুলো একসাথে ইউজ করা যাবে
  • ! (নট) — সাধারণত একটা স্টেটমেন্ট এর পূর্বে বসে। এবং সেটা যদি সত্য true হয় তাহলে এটা রিটার্ন করবে মিথ্যা false, আর মিথ্যা false হলে রিটার্ন করবে সত্য true। মানে উল্টো
উল্টো
উল্টো

৪। অ্যাসাইনমেন্ট অপারেটরঃ সমান, যোগ সমান, বিয়োগ সমান, গুণ সমান, ভাগ সমান, মডুলাস সমান।

  • = সিম্পল অ্যাসাইনমেন্ট অপারেটরঃ আমরা অলরেডি ইউজ করেছি এই অপারেটর। এটা ভ্যারিয়েবলে ভ্যালু অ্যাসাইন করার জন্যে ইউজ করা হয়।

  • += যোগ এবং অ্যাসাইনমেন্ট অপারেটরঃ নিজের সাথে নিজের ভ্যালু যোগ করে সেটাকে আবার নিজের সাথেই অ্যাসাইন করা একই সাথে। a += 10 এটার ফুল ফর্ম হচ্ছেঃ

a = a + 10;

  • -= বিয়োগ এবংঅ্যাসাইনমেন্ট অপারেটরঃ এটাও শর্টকাট আগেরটার মতোই। নিজের সাথে নিজের ভ্যালু বিয়োগ করে সেটাকে আবার নিজের সাথেই অ্যাসাইন করা একই সাথে। a -= 10 এটার ফুল ফর্ম হচ্ছেঃ

a = a - 10;

  • *= গুণ এবংঅ্যাসাইনমেন্ট অপারেটরঃ এটাও শর্টকাট।নিজের সাথে নিজের ভ্যালু গুণ করে সেটাকে আবার নিজের সাথেই অ্যাসাইন করা একই সাথে। a *= 5 এটার ফুল ফর্ম হচ্ছেঃ

a = a * 5;

  • /= ভাগ এবংঅ্যাসাইনমেন্ট অপারেটরঃ এটাও শর্টকাট। নিজের সাথে নিজের ভ্যালু ভাগ করে সেটাকে আবার নিজের সাথেই অ্যাসাইন করা একই সাথে। a /= 2 এটার ফুল ফর্ম হচ্ছেঃ

a = a / 2;

  • %= ভাগশেষ এবংঅ্যাসাইনমেন্ট অপারেটরঃ এটাও আরেকটা শর্টকাট।নিজের সাথে নিজের ভ্যালু মড করে সেটাকে আবার নিজের সাথেই অ্যাসাইন করা একই সাথে। a %= 5 এটার ফুল ফর্ম হচ্ছেঃ

a = a % 5;

৫। কন্ডিশনাল/টার্নারি অপারেটরঃ ? : এটাও আরেকটা শর্টকাট। উদাহরন দেখলে বুঝতে পারবেনঃ

যদি কন্ডিশন সত্য হয় ? তাইলে ভ্যালু এটা : নাইলে ভ্যালু এইটা

৬। অন্যান্য অপারেটরঃ

  • typeof অপারেটরঃ আমরা আগের পর্বেও এটা ইউজ করেছি। এটাও আসলে একটা অপারেটর। ডাটার টাইপ বের করতে ইউজ করা হয়। আপনি চাইলে এভাবে typeof(yourVariable) ফার্স্ট ব্র্যাকেটস এর ভিতরে, বা এভাবেও typeof yourVariable লিখতে পারবেন। এটা সবসময় ভ্যালু যে টাইপের সেটাই স্ট্রিং হিসাবে রিটার্ন করবেঃ

typeof কোনটা কিভাবে রিটার্ন করেঃ

ট্যাগঃ
শেয়ার করুনঃ

ক্রমানুসারে এই জাভাস্ক্রিপ্ট সিরিজঃ

জাভাস্ক্রিপ্ট ব্যাসিক
জাভাস্ক্রিপ্টঃ কি, কেন, কখন? জাভাস্ক্রিপ্টঃ কোথায় এবং কিভাবে ইউজ করা হয়? জাভাস্ক্রিপ্টঃ ব্যাসিক ক্রোম ডেভেলপার কন্সোল জাভাস্ক্রিপ্টঃ ভ্যারিয়েবল এবং ডাটা টাইপ জাভাস্ক্রিপ্টঃ অপারেটর নিয়ে সবকিছু জাভাস্ক্রিপ্টঃ কন্ডিশনাল স্টেটমেন্ট নিয়ে সবকিছু জাভাস্ক্রিপ্টঃ লুপ নিয়ে সবকিছু জাভাস্ক্রিপ্টঃ অ্যারে নিয়ে সবকিছু জাভাস্ক্রিপ্টঃ ব্যাসিক অবজেক্ট জাভাস্ক্রিপ্টঃ ব্যাসিক ফাংশন জাভাস্ক্রিপ্টঃ স্টেটমেন্ট আর এক্সপ্রেশন জাভাস্ক্রিপ্টঃ ড্রাই প্রিন্সিপ্যাল জাভাস্ক্রিপ্টঃ নাকি ইকমাস্ক্রিপ্ট? জাভাস্ক্রিপ্টঃ বিহ্যাইন্ড দ্যা সীন জাভাস্ক্রিপ্টঃ হোইস্টিং(Hoisting) নিয়ে ধারণা জাভাস্ক্রিপ্টঃ স্কোপ(Scope) নিয়ে ধারণা জাভাস্ক্রিপ্টঃ ক্লোজারস(Closures) নিয়ে ধারণা জাভাস্ক্রিপ্টঃ ইফি, Immediately Invoked Function Expressions (IIFE)
জাভাস্ক্রিপ্ট অ্যাডভান্স
জাভাস্ক্রিপ্ট অ্যাডভান্সঃ ‘this’ কীওয়ার্ড জাভাস্ক্রিপ্ট অ্যাডভান্সঃ call(), bind() এবং apply() মেথড জাভাস্ক্রিপ্ট অ্যাডভান্সঃ অবজেক্ট ওরিয়েন্টেড জাভাস্ক্রিপ্ট জাভাস্ক্রিপ্ট অ্যাডভান্সঃ ফাংশন কন্সট্রাকটর(Constructor) এবং ‘new’ কীওয়ার্ড জাভাস্ক্রিপ্ট অ্যাডভান্সঃ ইনহেরিট্যান্স (Inheritance) জাভাস্ক্রিপ্ট অ্যাডভান্সঃ স্ট্রিক্ট (Strict) মোড
জাভাস্ক্রিপ্ট ইএস ৬(ES6)
জাভাস্ক্রিপ্ট ইএস ৬(ES6): নতুন কি আছে? জাভাস্ক্রিপ্ট ইএস ৬(ES6): let এবং const দিয়ে ভ্যারিয়েবল ডিক্লেয়ার করা জাভাস্ক্রিপ্ট ইএস ৬(ES6):ইফি (Immediately Invoked Function Expressions) জাভাস্ক্রিপ্ট ইএস ৬(ES6): টেমপ্লেট লিটারেল(Template Literal) ও স্ট্রিং মেথড জাভাস্ক্রিপ্ট ইএস ৬(ES6): অ্যারো (Arrow) ফাংশন ও লেক্সিক্যাল(Lexical) ‘this’ কীওয়ার্ড জাভাস্ক্রিপ্ট ইএস ৬(ES6): অ্যারে জাভাস্ক্রিপ্ট ইএস ৬(ES6): স্প্রেড(Spread) অপারেটর জাভাস্ক্রিপ্ট ইএস ৬(ES6): ডি-স্ট্রাকচারিং (Destructuring) জাভাস্ক্রিপ্ট ইএস ৬(ES6): রেস্ট(Rest) প্যারামিটার জাভাস্ক্রিপ্ট ইএস ৬(ES6): ডিফল্ট(Default) প্যারামিটার জাভাস্ক্রিপ্ট ইএস ৬(ES6): ম্যাপ (Map) জাভাস্ক্রিপ্ট ইএস ৬(ES6): ক্লাস (Class) জাভাস্ক্রিপ্ট ইএস ৬(ES6): ক্লাস ও ইনহেরিট্যান্স (Inheritance) জাভাস্ক্রিপ্ট ইএস ৬(ES6): সব ইনভারোমেন্ট এ ইএস৬
নিত্যদিনের জাভাস্ক্রিপ্ট
নিত্যদিনের জাভাস্ক্রিপ্টঃ ফার্স্ট ক্লাস ফাংশন ও হাইয়ার অর্ডার ফাংশন নিত্যদিনের জাভাস্ক্রিপ্টঃ map(), filter() ও reduce() নিত্যদিনের জাভাস্ক্রিপ্টঃ some() ও every() মেথড নিত্যদিনের জাভাস্ক্রিপ্টঃ অবজেক্ট এ লুপ চালানো নিত্যদিনের জাভাস্ক্রিপ্টঃ ডট নোটেশন এবং ব্র্যাকেট নোটেশন নিত্যদিনের জাভাস্ক্রিপ্টঃ ম্যাথ (Math) অবজেক্ট নিত্যদিনের জাভাস্ক্রিপ্টঃ ডেট (Date) অবজেক্ট নিত্যদিনের জাভাস্ক্রিপ্টঃ লজিক্যাল অপারেটর অর (।।) এবং অ্যান্ড (&&) নিত্যদিনের জাভাস্ক্রিপ্টঃ কন্ডিশনাল/টার্নারি (Ternary) অপারেটর নিত্যদিনের জাভাস্ক্রিপ্টঃ রেগুলার এক্সপ্রেশন (Regular Expression) নিত্যদিনের জাভাস্ক্রিপ্টঃ এরর হ্যান্ডলিং (Error Handling) নিত্যদিনের জাভাস্ক্রিপ্টঃ ডেভেলপার কন্সোল (Console) নিত্যদিনের জাভাস্ক্রিপ্টঃ অ্যাসিনক্রোনাস (Asynchronous) নিত্যদিনের জাভাস্ক্রিপ্টঃ কলব্যাক(Callback) ফাংশন নিত্যদিনের জাভাস্ক্রিপ্টঃ প্রমিস (Promise) নিত্যদিনের জাভাস্ক্রিপ্টঃ async এবং await